commit 67362cd7399ad6e06a1fa383da280ce71bc5d189
Author: muhammad.faique
Date: Mon Feb 3 17:31:10 2025 +0500
Initial Commit
diff --git a/.vs/DevicePolling/v16/.suo b/.vs/DevicePolling/v16/.suo
new file mode 100644
index 0000000..34eaded
Binary files /dev/null and b/.vs/DevicePolling/v16/.suo differ
diff --git a/.vs/ZktecoAttendenceService/v16/.suo b/.vs/ZktecoAttendenceService/v16/.suo
new file mode 100644
index 0000000..103ae0a
Binary files /dev/null and b/.vs/ZktecoAttendenceService/v16/.suo differ
diff --git a/DevicePolling.sln b/DevicePolling.sln
new file mode 100644
index 0000000..64f41a3
--- /dev/null
+++ b/DevicePolling.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZktecoAttendenceService", "DevicePolling\ZktecoAttendenceService.csproj", "{8191807F-898C-4B4F-B5CF-0382C37C92C0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8191807F-898C-4B4F-B5CF-0382C37C92C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8191807F-898C-4B4F-B5CF-0382C37C92C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8191807F-898C-4B4F-B5CF-0382C37C92C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8191807F-898C-4B4F-B5CF-0382C37C92C0}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {6E6C8B69-0BC4-4E45-9EEC-E2A62B7D3121}
+ EndGlobalSection
+EndGlobal
diff --git a/DevicePolling.suo b/DevicePolling.suo
new file mode 100644
index 0000000..50002f1
Binary files /dev/null and b/DevicePolling.suo differ
diff --git a/DevicePolling.v12.suo b/DevicePolling.v12.suo
new file mode 100644
index 0000000..01435f2
Binary files /dev/null and b/DevicePolling.v12.suo differ
diff --git a/DevicePolling/Attendance/Attendance.cs b/DevicePolling/Attendance/Attendance.cs
new file mode 100644
index 0000000..78fec78
--- /dev/null
+++ b/DevicePolling/Attendance/Attendance.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZktecoAttendenceService
+{
+ class Attendance
+ {
+ private string acNo;
+ private DateTime checkTime;
+ private bool isProcessed;
+ private string machineId;
+ private string inOutTypeId;
+ private string machineIp;
+ private DateTime date;
+
+ public Attendance()
+ {
+
+ }
+
+ public Attendance(string acNo, DateTime checkTime, bool isProcessed, string machineId, string inOutTypeId, string machineIp, DateTime date)
+ {
+ this.AcNo = acNo;
+ this.CheckTime = checkTime;
+ this.IsProcessed = isProcessed;
+ this.MachineId = machineId;
+ this.InOutTypeId = inOutTypeId;
+ this.MachineIp = machineIp;
+ this.Date = date;
+ }
+
+ public string AcNo { get => acNo; set => acNo = value; }
+ public DateTime CheckTime { get => checkTime; set => checkTime = value; }
+ public bool IsProcessed { get => isProcessed; set => isProcessed = value; }
+ public string MachineId { get => machineId; set => machineId = value; }
+ public string InOutTypeId { get => inOutTypeId; set => inOutTypeId = value; }
+ public string MachineIp { get => machineIp; set => machineIp = value; }
+ public DateTime Date { get => date; set => date = value; }
+ }
+}
diff --git a/DevicePolling/Attendance/AttendanceDAO.cs b/DevicePolling/Attendance/AttendanceDAO.cs
new file mode 100644
index 0000000..4a9602c
--- /dev/null
+++ b/DevicePolling/Attendance/AttendanceDAO.cs
@@ -0,0 +1,74 @@
+using MySql.Data.MySqlClient;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZktecoAttendenceService
+{
+ class AttendanceDAO
+ {
+ public AttendanceDAO()
+ {
+ }
+ public void Add(Attendance attendance, MySqlConnection connection)
+ {
+ string query = "INSERT INTO `hrms`.`attendance_log` (`ac_no`, `checktime`, `processed`, `machine_id`, `in_out_type_id`, `machine_ip`, `date`) VALUES (@AcNo, @CHECKTIME, @isProcessed, @MachineId, @InOutTypeId, @MachineIP, @Getdate)";
+
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ cmd.Parameters.AddWithValue("@AcNo", attendance.AcNo);
+ cmd.Parameters.AddWithValue("@CHECKTIME", attendance.CheckTime);
+ cmd.Parameters.AddWithValue("@isProcessed", attendance.IsProcessed);
+ cmd.Parameters.AddWithValue("@machineId", attendance.MachineId);
+ cmd.Parameters.AddWithValue("@InOutTypeId", attendance.InOutTypeId);
+ cmd.Parameters.AddWithValue("@MachineIP", attendance.MachineIp);
+ cmd.Parameters.AddWithValue("@Getdate", attendance.Date);
+
+ cmd.ExecuteNonQuery();
+
+ }
+ public void AddColony(Attendance attendance, MySqlConnection connection)
+ {
+ string query = "REPLACE INTO `hrms`.`colony_attendance_log` (`ac_no`, `checktime`, `processed`, `machine_id`, `in_out_type_id`, `machine_ip`, `date`) VALUES (@AcNo, @CheckTime, @IsProcessed, @MachineId, @InOutTypeId, @MachineIp, @GetDate)";
+
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ cmd.Parameters.AddWithValue("@AcNo", attendance.AcNo);
+ cmd.Parameters.AddWithValue("@CheckTime", attendance.CheckTime);
+ cmd.Parameters.AddWithValue("@IsProcessed", attendance.IsProcessed);
+ cmd.Parameters.AddWithValue("@MachineId", attendance.MachineId);
+ cmd.Parameters.AddWithValue("@InOutTypeId", attendance.InOutTypeId);
+ cmd.Parameters.AddWithValue("@MachineIp", attendance.MachineIp);
+ cmd.Parameters.AddWithValue("@GetDate", attendance.Date);
+
+ cmd.ExecuteNonQuery();
+
+ }
+
+ public void BulkInsert(List attendanceLogs, MySqlConnection connection)
+ {
+ if (attendanceLogs == null || attendanceLogs.Count == 0) return;
+
+ // Start building the INSERT statement
+ StringBuilder queryBuilder = new StringBuilder("INSERT INTO attendance_log (ac_no, checktime, processed, machine_id, in_out_type_id, machine_ip, date) VALUES ");
+
+ // Add each record as a value
+ List rows = new List();
+ foreach (var log in attendanceLogs)
+ {
+ rows.Add($"('{log.AcNo}', '{log.CheckTime:yyyy-MM-dd HH:mm:ss}', {log.IsProcessed}, {log.MachineId}, {log.InOutTypeId}, '{log.MachineIp}', '{log.Date:yyyy-MM-dd HH:mm:ss}')");
+ }
+
+ // Concatenate rows with commas
+ queryBuilder.Append(string.Join(", ", rows));
+
+ // Execute the query
+ using (MySqlCommand cmd = new MySqlCommand(queryBuilder.ToString(), connection))
+ {
+ cmd.ExecuteNonQuery();
+ }
+ }
+ }
+}
diff --git a/DevicePolling/AttendanceMachine/AttendanceMachine.cs b/DevicePolling/AttendanceMachine/AttendanceMachine.cs
new file mode 100644
index 0000000..5ba10fa
--- /dev/null
+++ b/DevicePolling/AttendanceMachine/AttendanceMachine.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZktecoAttendenceService
+{
+ public class AttendanceMachine
+ {
+ private string machineId;
+ private string machineIp;
+ private int portNumber;
+ private string machineName;
+ private int siteId;
+ private string status;
+ private DateTime lastSyncDate;
+
+
+
+ public AttendanceMachine()
+ {
+
+ }
+
+ public AttendanceMachine(string machineId, string machineIp, int portNumber, string machineName, int siteId, string status, DateTime lastSyncDate)
+ {
+ this.MachineId = machineId;
+ this.MachineIp = machineIp;
+ this.PortNumber = portNumber;
+ this.MachineName = machineName;
+ this.SiteId = siteId;
+ this.Status = status;
+ this.LastSyncDate = lastSyncDate;
+
+ }
+
+
+ public string MachineId { get => machineId; set => machineId = value; }
+ public string MachineIp { get => machineIp; set => machineIp = value; }
+ public int PortNumber { get => portNumber; set => portNumber = value; }
+ public string MachineName { get => machineName; set => machineName = value; }
+ public int SiteId { get => siteId; set => siteId = value; }
+ public string Status { get => status; set => status = value; }
+ public DateTime LastSyncDate { get => lastSyncDate; set => lastSyncDate = value; }
+
+
+
+
+
+ public string GetDeviceInfo()
+ {
+ return "DeviceInfo( dev_id = \"1\" dev_type = \"HW_HDCP\" comm_type = \"ip\" ip_address = \"" + this.machineIp + "\", password = \"\", port_number = \"" + this.portNumber + "\")";
+ }
+ }
+}
diff --git a/DevicePolling/AttendanceMachine/AttendanceMachineDAO.cs b/DevicePolling/AttendanceMachine/AttendanceMachineDAO.cs
new file mode 100644
index 0000000..2be33f0
--- /dev/null
+++ b/DevicePolling/AttendanceMachine/AttendanceMachineDAO.cs
@@ -0,0 +1,103 @@
+using MySql.Data.MySqlClient;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZktecoAttendenceService
+{
+ class AttendanceMachineDAO
+ {
+
+ public void update(AttendanceMachine attendanceMachine, MySqlConnection connection)
+ {
+ string query = "UPDATE `hrms`.`attendance_machine` SET `machine_ip` = @machine_ip, `port_number` = @port_number, `machine_name` = @machine_name, `site_id` = @site_id, `status` = @status, `last_sync_date` = @last_sync_date WHERE `machine_id` = @machine_id";
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ cmd.Parameters.AddWithValue("@machine_ip", attendanceMachine.MachineIp);
+ cmd.Parameters.AddWithValue("@port_number", attendanceMachine.PortNumber);
+ cmd.Parameters.AddWithValue("@machine_name", attendanceMachine.MachineName);
+ cmd.Parameters.AddWithValue("@site_id", attendanceMachine.SiteId);
+ cmd.Parameters.AddWithValue("@status", attendanceMachine.Status);
+ cmd.Parameters.AddWithValue("@last_sync_date", attendanceMachine.LastSyncDate);
+ cmd.Parameters.AddWithValue("@machine_id", attendanceMachine.MachineId);
+
+ cmd.ExecuteNonQuery();
+ }
+ public void updateColony(AttendanceMachine attendanceMachine, MySqlConnection connection)
+ {
+ string query = "UPDATE `hrms`.`colony_attendance_machine` SET `machine_ip` = @machine_ip, `port_number` = @port_number, `machine_name` = @machine_name, `site_id` = @site_id, `status` = @status, `last_sync_date` = @last_sync_date WHERE `machine_id` = @machine_id";
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ cmd.Parameters.AddWithValue("@machine_ip", attendanceMachine.MachineIp);
+ cmd.Parameters.AddWithValue("@port_number", attendanceMachine.PortNumber);
+ cmd.Parameters.AddWithValue("@machine_name", attendanceMachine.MachineName);
+ cmd.Parameters.AddWithValue("@site_id", attendanceMachine.SiteId);
+ cmd.Parameters.AddWithValue("@status", attendanceMachine.Status);
+ cmd.Parameters.AddWithValue("@last_sync_date", attendanceMachine.LastSyncDate);
+ cmd.Parameters.AddWithValue("@machine_id", attendanceMachine.MachineId);
+
+ cmd.ExecuteNonQuery();
+ }
+ public List getAttendanceMachines(MySqlConnection connection, String siteId)
+ {
+ List attendanceMachines = null;
+
+ // Define your query for active machines of type 'ZKTECO'
+ string query = "select * from hrms.attendance_machine where machine_status = 1 and machine_type = 'ZKTECO'";
+
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ cmd.Parameters.AddWithValue("@siteId", siteId);
+
+ MySqlDataReader reader = cmd.ExecuteReader();
+ if (reader != null)
+ {
+ attendanceMachines = getAttendanceMachineList(reader);
+ reader.Close();
+ }
+
+ // Manually add the machine with ID 100 and IP 192.168.50.8
+ if (attendanceMachines == null)
+ {
+ attendanceMachines = new List();
+ }
+ attendanceMachines.Add(new AttendanceMachine
+ {
+ MachineId = "100",
+ MachineIp = "192.168.50.8",
+ PortNumber = 4370,
+ // Add other necessary fields if they exist
+ });
+
+ return attendanceMachines;
+ }
+
+
+
+ private List getAttendanceMachineList(MySqlDataReader reader)
+ {
+ List attendanceMachines = new List();
+ while (reader.Read())
+ {
+ attendanceMachines.Add(toAttendanceMachine(reader));
+ }
+ return attendanceMachines;
+ }
+
+ private AttendanceMachine toAttendanceMachine(MySqlDataReader reader)
+ {
+ return new AttendanceMachine(
+ reader.IsDBNull(0) ? "" : reader.GetString("machine_id"),
+ reader.IsDBNull(1) ? "" : reader.GetString("machine_ip"),
+ reader.IsDBNull(2) ? default(int) : reader.GetInt16("port_number"),
+ reader.IsDBNull(3) ? "" : reader.GetString("machine_name"),
+ reader.IsDBNull(4) ? default(int) : reader.GetInt16("site_id"),
+ reader.IsDBNull(5) ? "" : reader.GetString("status"),
+ reader.IsDBNull(6) ? default(DateTime) : reader.GetDateTime("last_sync_date")
+
+ );
+ }
+
+
+
+ }
+}
diff --git a/DevicePolling/ConnectionClass.cs b/DevicePolling/ConnectionClass.cs
new file mode 100644
index 0000000..5c30e8a
--- /dev/null
+++ b/DevicePolling/ConnectionClass.cs
@@ -0,0 +1,77 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using System.Data.OracleClient;
+using MySql.Data.MySqlClient;
+
+namespace ZktecoAttendenceService
+{
+ class ConnectionClass
+ {
+ private static MySqlConnection connection;
+
+ private static string server;
+ private static string database;
+ private static string uid;
+ private static string password;
+
+
+ public MySqlConnection Connection()
+ {
+ server = "utopia-industries-rr.c5qech8o9lgg.us-east-1.rds.amazonaws.com";
+ database = "hrms";
+ uid = "uind_hrms_user";
+ password = "UINDHRMS01";
+ string connectionString;
+ connectionString = "SERVER=" + server + ";" + "DATABASE=" +
+ database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
+
+ connection = new MySqlConnection(connectionString);
+ return connection;
+ }
+ public bool OpenConnection(MySqlConnection connection)
+ {
+ try
+ {
+
+ connection.Open();
+ Console.WriteLine("Connected !");
+ return true;
+
+ }
+ catch (MySqlException ex)
+ {
+ switch (ex.Number)
+ {
+ case 0:
+ Console.WriteLine("Cannot connect to server. Contact administrator");
+ break;
+
+ case 1045:
+ Console.WriteLine("Invalid username/password, please try again");
+ break;
+ }
+ return false;
+ }
+ }
+
+
+ public bool CloseConnection(MySqlConnection connection)
+ {
+ try
+ {
+ Connection();
+ connection.Close();
+ return true;
+ }
+ catch (MySqlException ex)
+ {
+ Console.WriteLine(ex.Message);
+ return false;
+ }
+ }
+ }
+
+
+}
diff --git a/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs b/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs
new file mode 100644
index 0000000..c5d52de
--- /dev/null
+++ b/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs
@@ -0,0 +1,231 @@
+using MySql.Data.MySqlClient;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+
+
+namespace ZktecoAttendenceService
+{
+ class AttendanceMachineUserDAO
+ {
+
+ static bool result;
+ public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
+ List responses;
+ bool MachineOutput = true;
+
+ public AttendanceMachineUserDAO() { }
+
+ AttendanceMachine machine = new AttendanceMachine();
+
+ public void Add(AttendanceMachineUser attendanceMachineUser, MySqlConnection connection)
+ {
+ string query = "REPLACE INTO `hrms`.`attendance_machine_user` (`machine_id`, `serial_number`, `employee_name`) VALUES (@MachineId, @SerialNumber, @EmployeeName)";
+
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ cmd.Parameters.AddWithValue("@machineId", attendanceMachineUser.MachineId);
+ cmd.Parameters.AddWithValue("@SerialNumber", attendanceMachineUser.SerialNumber);
+ cmd.Parameters.AddWithValue("@EmployeeName", attendanceMachineUser.EmployeeName);
+
+ cmd.ExecuteNonQuery();
+
+ }
+
+
+ public List getAllEmployees(MySqlConnection connection)
+ {
+ List DBusers = null;
+ string query = "select * from hrms.attendance_machine_user where is_deleted = 0";
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ MySqlDataReader reader = cmd.ExecuteReader();
+
+ if (reader != null)
+ {
+ DBusers = getDBUsers(reader);
+ reader.Close();
+ }
+ return DBusers;
+ }
+
+
+ public DataTable getAllEmployees_MachineWise(MySqlConnection connection, string MachineID)
+ {
+ DataTable DBusers = new DataTable();
+ string query = "select * from hrms.attendance_machine_user a where a.machine_id = '" + MachineID + "' and a.is_deleted = 0 ";
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ MySqlDataAdapter AdtMysql = new MySqlDataAdapter();
+ AdtMysql.SelectCommand = cmd;
+ AdtMysql.Fill(DBusers);
+
+ return DBusers;
+ }
+
+ private List getDBUsers(MySqlDataReader reader)
+ {
+ List DbUsers = new List();
+ while (reader.Read())
+ {
+ DbUsers.Add(GetDbUsers(reader));
+ }
+ return DbUsers;
+ }
+
+
+ private AttendanceMachineUser GetDbUsers(MySqlDataReader reader)
+ {
+ return new AttendanceMachineUser(
+ reader.IsDBNull(0) ? "" : reader.GetString("machine_id"),
+ reader.IsDBNull(1) ? "" : reader.GetString("serial_number"),
+ reader.IsDBNull(2) ? "" : reader.GetString("employee_name"),
+ reader.IsDBNull(3) ? default(int) : reader.GetInt16("is_deletion_requested"),
+ reader.IsDBNull(4) ? default(int) : reader.GetInt16("is_deleted")
+ );
+ }
+ string DTvalue;
+ public List saveMachineUsers(DataTable DBusersMachineWise, List response, MySqlConnection mySqlConnection,string machineID)
+ {
+
+ List responses = new List();
+ // Create a HashSet to store all values in the DataTable for faster lookup
+ HashSet dbValues = new HashSet();
+ foreach (DataRow row in DBusersMachineWise.Rows)
+ {
+ string dbValue = row["serial_number"].ToString();
+ dbValues.Add(dbValue);
+ }
+
+ foreach (string value in response)
+ {
+ if (!dbValues.Contains(value))
+ {
+ // Value not found in the DataTable
+ Console.WriteLine("Save in db" + value);
+
+ // You may want to add more logic here based on your requirements
+ AttendanceMachineUser addinDb = new AttendanceMachineUser(machineID, value, "", 0, 0);
+ Add(addinDb, mySqlConnection);
+ responses.Add(value + "--> Save in db");
+ }
+ }
+
+ return responses;
+ }
+ bool Bconnect = false;
+ public void DeleteFaceTemplate(AttendanceMachine machine, int Emp_ID, List responses)
+ {
+ Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, machine.PortNumber);
+ axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false);//disable the device
+
+ try
+ {
+ if (Bconnect == true)
+ {
+
+ axCZKEM1.SSR_DeleteEnrollData(Convert.ToInt32(machine.MachineId), Emp_ID.ToString(), 12);
+ Console.WriteLine(Emp_ID + " removed from " + machine.MachineId);
+ responses.Add(Emp_ID + " removed from " + machine.MachineId);
+ MachineOutput = true;
+
+ axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true);
+
+ axCZKEM1.Disconnect();
+ }
+ else
+ { }
+
+ }
+
+ catch (Exception ex)
+ {
+
+ }
+
+ }
+
+
+
+ public List DeleteFromDbAndMachine(List objDetail_Final, AttendanceMachine machine, MySqlConnection connection)
+ {
+
+ List responses = new List();
+ DataTable TableMachineUsers = new DataTable();
+
+ TableMachineUsers = getAllEmployees_MachineWise(connection, machine.MachineId);
+ DataColumn isProcessedColumn = TableMachineUsers.Columns.Add("IsProcessed", typeof(bool));
+ foreach (DataRow row in TableMachineUsers.Rows)
+ {
+ // Set the value of the "IsProcessed" column to true for each row
+ row["IsProcessed"] = false;
+ }
+
+
+ if (TableMachineUsers.Rows.Count > 0)
+ {
+ foreach (DataRow dr in TableMachineUsers.Rows)
+ {
+ //string serial_no = "=" + '"' + dr["serial_number"].ToString() + '"' + ' ';
+ string serial_no = dr["serial_number"].ToString();
+ if (objDetail_Final.Contains(serial_no))
+ {
+ if (dr["is_deletion_requested"].ToString() == "1")
+ {
+ //removing face template
+ DeleteFaceTemplate(machine, Convert.ToInt32(serial_no), responses);
+
+ //Updating flag in db
+
+ if (MachineOutput == true)
+ {
+ UpdateFlag_InMachineUsers(machine.MachineId, serial_no, connection);
+ dr["IsProcessed"] = true;
+ }
+ }
+
+ }
+ else
+ {
+ if (dr["is_deleted"].ToString() == "0")
+ {
+ //UPDATE FLAG IN DATABASE
+ UpdateFlag_InMachineUsers(machine.MachineId, serial_no, connection);
+ responses.Add(serial_no + " marked deleted in db --> " + machine.MachineId);
+ Console.WriteLine(serial_no + " marked deleted in db --> " + machine.MachineId);
+ }
+ }
+ }
+
+ // Save Machine Users In Db
+ responses.AddRange(saveMachineUsers(TableMachineUsers, objDetail_Final,connection, machine.MachineId));
+
+ }
+ else
+ {
+ for (int i = 0; i < objDetail_Final.Count; i++)
+ {
+ string value = objDetail_Final[i].ToString();
+ AttendanceMachineUser temp = new AttendanceMachineUser(machine.MachineId, value, "", 0, 0);
+ Add(temp, connection);
+ }
+
+ }
+ return responses;
+ }
+
+
+ public void UpdateTotalEmpInMachines(string machine_id, int total_users, MySqlConnection connection)
+ {
+ string query = "UPDATE `hrms`.`attendance_machine` SET `total_users` =" + total_users + " WHERE `machine_id` = '" + machine_id + "'";
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ cmd.ExecuteNonQuery();
+ }
+
+ public void UpdateFlag_InMachineUsers(string machine_id, string serial_no, MySqlConnection connection)
+ {
+ string query = "UPDATE `hrms`.`attendance_machine_user` SET `is_deleted` = 1 WHERE `machine_id` = '" + machine_id + "' and serial_number = " + serial_no + "";
+ MySqlCommand cmd = new MySqlCommand(query, connection);
+ cmd.ExecuteNonQuery();
+ }
+ }
+}
diff --git a/DevicePolling/MachineUsers/AttendanceMachineUsers.cs b/DevicePolling/MachineUsers/AttendanceMachineUsers.cs
new file mode 100644
index 0000000..dc1431c
--- /dev/null
+++ b/DevicePolling/MachineUsers/AttendanceMachineUsers.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace ZktecoAttendenceService
+{
+ internal class AttendanceMachineUser
+ {
+ private string machineId;
+ private string serialNumber;
+ private string employeeName;
+
+ private int Is_deletion_requested;
+ private int Is_deleted;
+ private int Is_primary;
+
+ public AttendanceMachineUser(string machineId, string serialNumber, string employeeName, int is_deletion_requested, int is_deleted)
+ {
+ this.MachineId = machineId;
+ this.SerialNumber = serialNumber;
+ this.EmployeeName = employeeName;
+ this.Is_deletion_requested = is_deletion_requested;
+ this.Is_deleted = is_deleted;
+ }
+
+ public string MachineId { get => machineId; set => machineId = value; }
+ public string SerialNumber { get => serialNumber; set => serialNumber = value; }
+ public string EmployeeName { get => employeeName; set => employeeName = value; }
+ public int is_deletion_requested { get => Is_deletion_requested; set => Is_deletion_requested = value; }
+ public int is_deleted { get => Is_deleted; set => Is_deleted = value; }
+
+ }
+
+}
diff --git a/DevicePolling/Polling.cs b/DevicePolling/Polling.cs
new file mode 100644
index 0000000..88feada
--- /dev/null
+++ b/DevicePolling/Polling.cs
@@ -0,0 +1,387 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using System.IO;
+using System.Threading;
+using System.Net.NetworkInformation;
+using System.Data.OracleClient;
+using System.Diagnostics;
+using MySql.Data.MySqlClient;
+
+
+namespace ZktecoAttendenceService
+{
+ public partial class DevicePolling : Form
+ {
+ static MySqlConnection connection;
+
+ static ConnectionClass ObjConnectionClass = new ConnectionClass();
+ AttendanceDAO attendanceDAO = new AttendanceDAO();
+ AttendanceMachineUserDAO attendanceMachineUserDAO = new AttendanceMachineUserDAO();
+ WriteToTxtFile WriteFile_obj = new WriteToTxtFile();
+
+
+ public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
+ private bool bIsConnected = false;//the boolean value identifies whether the device is connected
+ private int iMachineNumber = 0;//the serial number of the device.After connecting the device ,this value will be changed.
+ DataTable dtMachines = new DataTable();
+ DataTable dtPAth = new DataTable();
+
+ List empList = new List();
+
+ public DevicePolling()
+ {
+ InitializeComponent();
+ }
+
+ private void DevicePolling_Load(object sender, EventArgs e)
+ {
+
+
+ //timer1.Enabled = true;
+ //timer1.Interval = 100;
+ //timer1.Start();
+ WriteFile_obj.WriteToFile("--Service is started at " + DateTime.Now, "ZKTECOAttendance");
+
+ List responses = StartPooling();
+ foreach (var response in responses)
+ {
+ WriteFile_obj.WriteToFile(response, "ZKTECOAttendance");
+ }
+ WriteFile_obj.WriteToFile("--Service is stopped at " + DateTime.Now, "ZKTECOAttendance");
+
+ Application.Exit();
+ }
+
+
+
+ public List StartPooling()
+ {
+ List responses = new List();
+
+ try
+ {
+ //timer1.Enabled = false;
+
+ Ping ping = new Ping();
+ string mIp = string.Empty;
+ Int16 mMacID = 0;
+ string mInOut = string.Empty;
+
+ connection = ObjConnectionClass.Connection();
+ if (ObjConnectionClass.OpenConnection(connection) == true)
+ {
+ AttendanceMachineDAO attendanceMachineDAO = new AttendanceMachineDAO();
+ List machines = attendanceMachineDAO.getAttendanceMachines(connection, "0");
+
+ foreach (var machine in machines)
+ {
+
+ if (machine.MachineIp == "192.168.52.17")
+ {
+
+
+ bool Bconnect = false;
+
+ Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber));
+ axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false);//disable the device
+
+
+ if (Bconnect == true)
+ {
+
+ if (machine.MachineId != "100")
+ {
+
+ machine.Status = "SYNCING";
+ attendanceMachineDAO.update(machine, connection);
+
+ responses.AddRange(poolMachineData(machine.MachineIp, machine.PortNumber, Convert.ToInt16(machine.MachineId)));
+ machine.Status = "IDLE";
+
+ DateTime now = DateTime.Now.AddMinutes(-5);
+ machine.LastSyncDate = now;
+ Console.WriteLine(machine.MachineId + " => " + machine.LastSyncDate);
+ attendanceMachineDAO.update(machine, connection);
+
+
+ List Newresponses = new List();
+ GetAllFaceInfo(machine);
+
+ //Delete from machine and db
+ attendanceMachineUserDAO.UpdateTotalEmpInMachines(machine.MachineId, empList.Count, connection);
+
+ Newresponses = (attendanceMachineUserDAO.DeleteFromDbAndMachine(empList, machine, connection));
+ if (Newresponses.Count != 0)
+ {
+ responses.AddRange(Newresponses);
+
+ }
+ empList = new List();
+ axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true);
+ Cursor = Cursors.Default;
+ axCZKEM1.Disconnect();
+
+ }
+
+ //for colony attendance
+ else
+ {
+ machine.Status = "SYNCING";
+ attendanceMachineDAO.updateColony(machine, connection);
+ responses.AddRange(poolMachineDataColony(machine.MachineIp, machine.PortNumber, Convert.ToInt16(machine.MachineId)));
+ machine.Status = "IDLE";
+
+ DateTime now = DateTime.Now.AddMinutes(-5);
+ machine.LastSyncDate = now;
+ Console.WriteLine(machine.MachineId + " => " + machine.LastSyncDate);
+ attendanceMachineDAO.updateColony(machine, connection);
+ axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true);
+ Cursor = Cursors.Default;
+ axCZKEM1.Disconnect();
+ }
+ }
+
+ else
+ {
+ responses.Add("MACHINE : " + machine.MachineIp + " : NOT CONNECTED");
+ // return responses;
+ machine.Status = "NOT CONNECTED";
+ attendanceMachineDAO.update(machine, connection);
+
+ }
+
+
+ }
+
+ }
+ ObjConnectionClass.CloseConnection(connection);
+ }
+
+ return responses;
+
+ }
+ catch (Exception ex)
+ {
+ return responses;
+ }
+ finally
+ {
+ ObjConnectionClass.CloseConnection(connection);
+ }
+
+
+ }
+
+ public List poolMachineDataColony(string ip, int port, int machineId)
+ {
+ List responses = new List();
+
+
+ string mPath = string.Empty;
+
+ string sdwEnrollNumber = "";
+ int idwVerifyMode = 0;
+ int idwInOutMode = 0;
+ int idwYear = 0;
+ int idwMonth = 0;
+ int idwDay = 0;
+ int idwHour = 0;
+ int idwMinute = 0;
+ int idwSecond = 0;
+ int idwWorkcode = 0;
+ int CountAttendance = 0;
+
+ //Cursor = Cursors.WaitCursor;
+ //Bconnect = axCZKEM1.Connect_Net(ip, Convert.ToInt32(port));
+ //axCZKEM1.EnableDevice(machineId, false);//disable the device
+
+ try
+ {
+
+ //axCZKEM1.RegEvent(Convert.ToInt32(machineId), 65535);//Here you can register the realtime events that you want to be triggered(the parameters 65535 means registering all)
+ if (axCZKEM1.ReadAllGLogData(machineId))//read all the attendance records to the memory
+ {
+ while (axCZKEM1.SSR_GetGeneralLogData(machineId, out sdwEnrollNumber, out idwVerifyMode,
+ out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))//get records from the memory
+ {
+ DateTime date = new DateTime(idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond);
+ try
+ {
+
+ Attendance log = new Attendance(sdwEnrollNumber, date, false, machineId.ToString(), "1", ip, DateTime.Now);
+ attendanceDAO.AddColony(log, connection);
+ CountAttendance++;
+ responses.Add("MACHINE : " + ip + " : , EMP NO : " + sdwEnrollNumber + " , TIME : " + date + "");
+
+ //return response;
+
+ }
+ catch (Exception ex)
+ {
+ responses.Add(ex.Message.ToString());
+ }
+ }
+
+
+ // responses.Add(GetTotalFromMachine(machineId));
+ axCZKEM1.ClearGLog(machineId);
+ //axCZKEM1.EnableDevice(machineId, true);
+
+ // axCZKEM1.Disconnect();
+
+ }
+ else
+ {
+ responses.Add("MACHINE : " + ip + " : NO DATA");
+ return responses;
+ }
+ return responses;
+ }
+ catch (Exception ex)
+ {
+
+ responses.Add(ex.Message.ToString());
+ return responses;
+
+ }
+ }
+ public List poolMachineData(string ip, int port, int machineId)
+ {
+ List responses = new List();
+ List attendanceLogs = new List();
+ string sdwEnrollNumber = "";
+ int idwVerifyMode = 0;
+ int idwInOutMode = 0;
+ int idwYear = 0;
+ int idwMonth = 0;
+ int idwDay = 0;
+ int idwHour = 0;
+ int idwMinute = 0;
+ int idwSecond = 0;
+ int idwWorkcode = 0;
+
+ try
+ {
+ // Connect and read attendance records
+ if (axCZKEM1.ReadAllGLogData(machineId)) // read all the attendance records into memory
+ {
+ while (axCZKEM1.SSR_GetGeneralLogData(machineId, out sdwEnrollNumber, out idwVerifyMode,
+ out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode)) // get records from memory
+ {
+ DateTime date = new DateTime(idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond);
+ Attendance log = new Attendance(sdwEnrollNumber, date, false, machineId.ToString(), "1", ip, DateTime.Now);
+ attendanceLogs.Add(log); // Add to the bulk insert list
+
+ // Optionally log the retrieved record
+ responses.Add($"MACHINE: {ip}, EMP NO: {sdwEnrollNumber}, TIME: {date}");
+ }
+
+ // Perform bulk insert for all records
+ try
+ {
+ if (attendanceLogs.Count > 0)
+ {
+ attendanceDAO.BulkInsert(attendanceLogs, connection); // Bulk insert method
+ responses.Add($"Successfully inserted {attendanceLogs.Count} records for MACHINE: {ip}");
+ }
+ else
+ {
+ responses.Add($"MACHINE: {ip} - No attendance logs found.");
+ }
+ }
+ catch (Exception ex)
+ {
+ responses.Add($"Error during bulk insert: {ex.Message}");
+ }
+
+ // Clear logs from the machine
+ axCZKEM1.ClearGLog(machineId);
+ }
+ else
+ {
+ responses.Add($"MACHINE: {ip} - No data available.");
+ }
+
+ return responses;
+ }
+ catch (Exception ex)
+ {
+ responses.Add($"Error: {ex.Message}");
+ return responses;
+ }
+ }
+
+
+ public List GetAllFaceInfo(AttendanceMachine machine)
+ {
+ bool Bconnect = false;
+ string sdwEnrollNumber = string.Empty, sName = string.Empty, sPassword = string.Empty;
+ int iPrivilege = 0, iFaceIndex = 0, iFlag = 0, iTmpLength = 0;
+ bool bEnabled = false;
+ Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber));
+ axCZKEM1.EnableDevice(Convert.ToInt16(machine.MachineId), false);//disable the device
+
+
+ if (Bconnect == true)
+ {
+ //objZkeeper.ReadAllUserID(machineNumber);
+ axCZKEM1.ReadAllTemplate(Convert.ToInt16(machine.MachineId));
+ while (axCZKEM1.SSR_GetAllUserInfo(Convert.ToInt16(machine.MachineId), out sdwEnrollNumber, out sName, out sPassword, out iPrivilege, out bEnabled))
+ {
+ empList.Add(sdwEnrollNumber);
+ }
+
+ }
+ return empList;
+ }
+ public string GetTotalFromMachine(int MachineID)
+ {
+ string response = "";
+
+ string sdwEnrollNumber = string.Empty, sName = string.Empty, sPassword = string.Empty;
+ int iPrivilege = 0, iFaceIndex = 0, iFlag = 0, iTmpLength = 0;
+ bool bEnabled = false;
+
+ axCZKEM1.ReadAllUserID(MachineID);
+ //axCZKEM1.ReadAllTemplate(MachineID);
+
+ int totalCount = 0;
+ while (axCZKEM1.SSR_GetAllUserInfo(MachineID, out sdwEnrollNumber, out sName, out sPassword, out iPrivilege, out bEnabled))
+ {
+
+ totalCount++;
+ }
+ attendanceMachineUserDAO.UpdateTotalEmpInMachines(MachineID.ToString(), totalCount, connection);
+ response = "MACHINE : " + MachineID + ", TOTAL EMP : " + totalCount + "";
+ return response;
+ }
+
+ static string GetMonthName(int monthNum)
+ {
+ return GetMonthName(monthNum, false);
+ }
+ static string GetMonthName(int monthNum, bool abbreviate)
+ {
+ if (monthNum < 1 || monthNum > 12)
+ throw new ArgumentOutOfRangeException("monthNum");
+ DateTime date = new DateTime(1, monthNum, 1);
+ if (abbreviate)
+ return date.ToString("MMM");
+ else
+ return date.ToString("MMMM");
+ }
+
+
+ private void timer1_Tick(object sender, EventArgs e)
+ {
+ StartPooling();
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/DevicePolling/Polling.designer.cs b/DevicePolling/Polling.designer.cs
new file mode 100644
index 0000000..d5d9707
--- /dev/null
+++ b/DevicePolling/Polling.designer.cs
@@ -0,0 +1,74 @@
+namespace ZktecoAttendenceService
+{
+ partial class DevicePolling
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.label1 = new System.Windows.Forms.Label();
+ this.timer1 = new System.Windows.Forms.Timer(this.components);
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.BackColor = System.Drawing.Color.Transparent;
+ this.label1.Font = new System.Drawing.Font("Times New Roman", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label1.Location = new System.Drawing.Point(3, 43);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(389, 26);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "UTOPIA ATTENDANCE POOLING";
+ //
+ // timer1
+ //
+ this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
+ //
+ // DevicePolling
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.ActiveBorder;
+ this.ClientSize = new System.Drawing.Size(395, 127);
+ this.Controls.Add(this.label1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
+ this.Name = "DevicePolling";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Attendance Sync";
+ this.Load += new System.EventHandler(this.DevicePolling_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Timer timer1;
+ }
+}
+
diff --git a/DevicePolling/Polling.resx b/DevicePolling/Polling.resx
new file mode 100644
index 0000000..d55421f
--- /dev/null
+++ b/DevicePolling/Polling.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/DevicePolling/Program.cs b/DevicePolling/Program.cs
new file mode 100644
index 0000000..ccb9041
--- /dev/null
+++ b/DevicePolling/Program.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+using ZktecoAttendenceService;
+
+namespace UtilityForFingerIdentity
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new DevicePolling());
+ }
+ }
+}
\ No newline at end of file
diff --git a/DevicePolling/Properties/AssemblyInfo.cs b/DevicePolling/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..d5f6571
--- /dev/null
+++ b/DevicePolling/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("DevicePolling")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Al Karam Textile Mills")]
+[assembly: AssemblyProduct("DevicePolling")]
+[assembly: AssemblyCopyright("Copyright © Al Karam Textile Mills 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("bf958cde-19cb-4fa6-8668-3b4dfb756409")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/DevicePolling/Properties/Resources.Designer.cs b/DevicePolling/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..ebc21a8
--- /dev/null
+++ b/DevicePolling/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace ZktecoAttendenceService.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DevicePolling.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/DevicePolling/Properties/Resources.resx b/DevicePolling/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/DevicePolling/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/DevicePolling/Properties/Settings.Designer.cs b/DevicePolling/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..79deb84
--- /dev/null
+++ b/DevicePolling/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace ZktecoAttendenceService.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/DevicePolling/Properties/Settings.settings b/DevicePolling/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/DevicePolling/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/DevicePolling/WriteToTxtFile.cs b/DevicePolling/WriteToTxtFile.cs
new file mode 100644
index 0000000..a0f3698
--- /dev/null
+++ b/DevicePolling/WriteToTxtFile.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace ZktecoAttendenceService
+{
+ class WriteToTxtFile
+ {
+ public void WriteToFile(string Message, string FileName)
+ {
+ //MessageBox.Show("In write file");
+ string path = AppDomain.CurrentDomain.BaseDirectory + "\\Logs";
+ if (!Directory.Exists(path))
+ {
+ Directory.CreateDirectory(path);
+ }
+ string filepath = AppDomain.CurrentDomain.BaseDirectory + "\\Logs\\" + FileName + "ServiceLog_" + DateTime.Now.Date.ToShortDateString().Replace('/', '_') + ".txt";
+ if (!File.Exists(filepath))
+ {
+ // Create a file to write to.
+ using (StreamWriter sw = File.CreateText(filepath))
+ {
+ sw.WriteLine(Message);
+ }
+ }
+ else
+ {
+ using (StreamWriter sw = File.AppendText(filepath))
+ {
+ sw.WriteLine(Message);
+ }
+ }
+ // MessageBox.Show("In write file wxit");
+ }
+ }
+}
diff --git a/DevicePolling/ZktecoAttendenceService.csproj b/DevicePolling/ZktecoAttendenceService.csproj
new file mode 100644
index 0000000..d17d660
--- /dev/null
+++ b/DevicePolling/ZktecoAttendenceService.csproj
@@ -0,0 +1,189 @@
+
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {8191807F-898C-4B4F-B5CF-0382C37C92C0}
+ WinExe
+ Properties
+ DevicePolling
+ DevicePolling
+ v4.8
+
+
+
+
+ 2.0
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ x86
+ false
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ false
+
+
+
+ ..\packages\BouncyCastle.Cryptography.2.2.1\lib\net461\BouncyCastle.Cryptography.dll
+
+
+ ..\packages\Google.Protobuf.3.21.9\lib\net45\Google.Protobuf.dll
+
+
+ False
+ D:\UtilityForFingerIdentity\bin\Debug\Interop.zkemkeeper.dll
+
+
+ ..\packages\K4os.Compression.LZ4.1.3.5\lib\net462\K4os.Compression.LZ4.dll
+
+
+ ..\packages\K4os.Compression.LZ4.Streams.1.3.5\lib\net462\K4os.Compression.LZ4.Streams.dll
+
+
+ ..\packages\K4os.Hash.xxHash.1.0.8\lib\net462\K4os.Hash.xxHash.dll
+
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\MySql.Data.8.2.0\lib\net48\MySql.Data.dll
+
+
+
+ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
+
+
+
+ ..\packages\System.Configuration.ConfigurationManager.4.4.1\lib\net461\System.Configuration.ConfigurationManager.dll
+
+
+
+
+
+ ..\packages\System.Diagnostics.DiagnosticSource.7.0.2\lib\net462\System.Diagnostics.DiagnosticSource.dll
+
+
+
+ ..\packages\System.IO.Pipelines.5.0.2\lib\net461\System.IO.Pipelines.dll
+
+
+
+ ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
+
+
+
+
+
+ ..\packages\ZstdSharp.Port.0.7.1\lib\net461\ZstdSharp.dll
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Polling.cs
+
+
+
+
+
+
+
+ Polling.cs
+ Designer
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/DevicePolling/ZktecoAttendenceService.csproj.user b/DevicePolling/ZktecoAttendenceService.csproj.user
new file mode 100644
index 0000000..6f23531
--- /dev/null
+++ b/DevicePolling/ZktecoAttendenceService.csproj.user
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+ en-US
+ false
+
+
\ No newline at end of file
diff --git a/DevicePolling/app.config b/DevicePolling/app.config
new file mode 100644
index 0000000..472b944
--- /dev/null
+++ b/DevicePolling/app.config
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DevicePolling/bin/Debug/BouncyCastle.Cryptography.dll b/DevicePolling/bin/Debug/BouncyCastle.Cryptography.dll
new file mode 100644
index 0000000..139425e
Binary files /dev/null and b/DevicePolling/bin/Debug/BouncyCastle.Cryptography.dll differ
diff --git a/DevicePolling/bin/Debug/BouncyCastle.Cryptography.xml b/DevicePolling/bin/Debug/BouncyCastle.Cryptography.xml
new file mode 100644
index 0000000..99cccc4
--- /dev/null
+++ b/DevicePolling/bin/Debug/BouncyCastle.Cryptography.xml
@@ -0,0 +1,29053 @@
+
+
+
+ BouncyCastle.Cryptography
+
+
+
+ Elliptic curve registry for ANSSI.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Return a representing the contents of the BIT STRING. The final byte, if any,
+ may include pad bits. See .
+ A with its source as the BIT STRING content.
+
+
+
+ Return a representing the contents of the BIT STRING, where the content is
+ expected to be octet-aligned (this will be automatically checked during parsing).
+ A with its source as the BIT STRING content.
+
+
+
+ Return the number of pad bits, if any, in the final byte, if any, read from
+ .
+
+ This number is in the range zero to seven. That number of the least significant bits of the final byte, if
+ any, are not part of the contents and should be ignored. NOTE: Must be called AFTER the stream has been
+ fully processed. (Does not need to be called if was used instead of
+ .
+
+ The number of pad bits. In the range zero to seven.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ Mutable class for building ASN.1 constructed objects such as SETs or SEQUENCEs.
+
+
+ GeneralizedTime ASN.1 type
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ Return an ObjectDescriptor from the passed in object.
+
+ @param obj an ASN1ObjectDescriptor or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ Return an ObjectDescriptor from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an octet string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ Return the content of the OCTET STRING as a .
+ A represnting the OCTET STRING's content.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Needed for open types, until we have better type-guided parsing support. Use sparingly for other
+ purposes, and prefer {@link #getExplicitBaseTagged()}, {@link #getImplicitBaseTagged(int, int)} or
+ {@link #getBaseUniversal(boolean, int)} where possible. Before using, check for matching tag
+ {@link #getTagClass() class} and {@link #getTagNo() number}.
+
+
+ Needed for open types, until we have better type-guided parsing support. Use
+ sparingly for other purposes, and prefer {@link #getExplicitBaseTagged()} or
+ {@link #getBaseUniversal(boolean, int)} where possible. Before using, check
+ for matching tag {@link #getTagClass() class} and {@link #getTagNo() number}.
+
+
+
+
+
+ Needed for open types, until we have better type-guided parsing support.
+
+ Use sparingly for other purposes, and prefer or
+ where possible. Before using, check for matching tag
+ class and number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UTCTime ASN.1 type
+
+
+ return a UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an adjusted date in the range of 1950 - 2049.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ iso.org.dod.internet.private.enterprise.legion-of-the-bouncy-castle
+ 1.3.6.1.4.1.22554
+
+
+ pbe(1) algorithms
+ 1.3.6.1.4.1.22554.1
+
+
+ SHA-1(1)
+ 1.3.6.1.4.1.22554.1.1
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ SPHINCS+
+
+
+ Picnic
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ X.509 extension(4) values
+
+ 1.3.6.1.4.1.22554.4
+
+
+ KEM(4) algorithms
+
+
+ Classic McEliece
+
+
+ SABER
+
+
+ SIKE
+
+
+ Kyber
+
+
+ BIKE
+
+
+ HQC
+
+
+ Extension to tie an alternate certificate to the containing certificate.
+
+ LinkedCertificate := SEQUENCE {
+ digest DigestInfo, -- digest of PQC certificate
+ certLocation GeneralName, -- location of PQC certificate
+ certIssuer [0] Name OPTIONAL, -- issuer of PQC cert (if different from current certificate)
+ cACerts [1] GeneralNames OPTIONAL, -- CA certificates for PQC cert (one of more locations)
+ }
+
+
+
+ A parser for indefinite-length BIT STRINGs.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ See https://www.bsi.bund.de/cae/servlet/contentblob/471398/publicationFile/30615/BSI-TR-03111_pdf.pdf
+
+
+ 0.4.0.127.0.7.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA-1
+ OID: 0.4.0.127.0.7.1.1.5.1.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA224
+ OID: 0.4.0.127.0.7.1.1.5.1.1.2
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA256
+ OID: 0.4.0.127.0.7.1.1.5.1.1.3
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA384
+ OID: 0.4.0.127.0.7.1.1.5.1.1.4
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA512
+ OID: 0.4.0.127.0.7.1.1.5.1.1.5
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function RIPEMD160
+ OID: 0.4.0.127.0.7.1.1.5.1.1.6
+
+
+ Key Derivation Function for Session Keys
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ CertAnnContent ::= CMPCertificate
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedKey
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 19}, < absent >
+ GenRep: {id-it 19}, CertReqTemplateContent | < absent >
+
+ CertReqTemplateValue ::= CertReqTemplateContent
+
+ CertReqTemplateContent ::= SEQUENCE {
+ certTemplate CertTemplate,
+ keySpec Controls OPTIONAL }
+
+ Controls ::= SEQUENCE SIZE (1..MAX) OF AttributeTypeAndValue
+
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ certReqId INTEGER,
+ statusInfo PKIStatusInfo OPTIONAL,
+ hashAlg [0] AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} OPTIONAL
+ }
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Rand is the inner type
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+ id-PasswordBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 13}
+
+
+ id-DHBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 30}
+
+
+ RFC 4120: it-id: PKIX.4 = 1.3.6.1.5.5.7.4
+ RFC 4120: 1.3.6.1.5.5.7.4.1
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.2
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.3
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.4
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.5
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.6
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.7
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.10
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.11
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.12
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.13
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.14
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.15
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.16
+
+
+ Update 16, RFC 4210
+ {id-it 17}
+
+
+ Update 16, RFC 4210
+ GenRep: {id-it 18}, RootCaKeyUpdateContent
+
+
+ Update 16, RFC 4210
+ {id-it 19}
+
+
+ Update 16, RFC 4210
+ GenMsg: {id-it 20}, RootCaCertValue
+
+
+ Update-16 to RFC 4210
+ id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21}
+
+
+ RFC 4211: it-pkip: PKIX.5 = 1.3.6.1.5.5.7.5
+
+
+ RFC 4211: it-regCtrl: 1.3.6.1.5.5.7.5.1
+
+
+ RFC 4211: it-regInfo: 1.3.6.1.5.5.7.5.2
+
+
+ 1.3.6.1.5.5.7.5.1.1
+
+
+ 1.3.6.1.5.5.7.5.1.2
+
+
+ 1.3.6.1.5.5.7.5.1.3
+
+
+ 1.3.6.1.5.5.7.5.1.4
+
+
+ 1.3.6.1.5.5.7.5.1.5
+
+
+ 1.3.6.1.5.5.7.5.1.6
+
+
+ From RFC4210:
+ id-regCtrl-altCertTemplate OBJECT IDENTIFIER ::= {id-regCtrl 7}; 1.3.6.1.5.5.7.1.7
+
+
+ RFC 4211: it-regInfo-utf8Pairs: 1.3.6.1.5.5.7.5.2.1
+
+
+ RFC 4211: it-regInfo-certReq: 1.3.6.1.5.5.7.5.2.1
+
+
+ 1.2.840.113549.1.9.16.1.21
+
+ id-ct OBJECT IDENTIFIER ::= { id-smime 1 } -- content types
+
+ id-ct-encKeyWithID OBJECT IDENTIFIER ::= {id-ct 21}
+
+
+
+ id-regCtrl-algId OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 }
+
+
+ id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 }
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it TBD1}, SEQUENCE SIZE (1..MAX) OF CRLStatus
+ GenRep: {id-it TBD2}, SEQUENCE SIZE (1..MAX) OF
+ CertificateList | < absent >
+
+ CRLSource ::= CHOICE {
+ dpn [0] DistributionPointName,
+ issuer [1] GeneralNames }
+
+
+
+ CRLStatus ::= SEQUENCE {
+ source CRLSource,
+ thisUpdate Time OPTIONAL }
+
+
+ DHBMParameter ::= SEQUENCE {
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ NestedMessageContent ::= PKIMessages
+
+
+ OOBCert ::= CMPCertificate
+
+
+
+ OOBCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the DER encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PBMParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIConfirmContent ::= NULL
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL }
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId
+ OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 20}, RootCaCertValue | < absent >
+ GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent >
+
+ RootCaCertValue ::= CMPCertificate
+
+ RootCaKeyUpdateValue ::= RootCaKeyUpdateContent
+
+ RootCaKeyUpdateContent ::= SEQUENCE {
+ newWithNew CMPCertificate,
+ newWithOld [0] CMPCertificate OPTIONAL,
+ oldWithNew [1] CMPCertificate OPTIONAL
+ }
+
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ From RFC 6211
+
+ CMSAlgorithmProtection ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ signatureAlgorithm [1] SignatureAlgorithmIdentifier OPTIONAL,
+ macAlgorithm [2] MessageAuthenticationCodeAlgorithm
+ OPTIONAL
+ }
+ (WITH COMPONENTS { signatureAlgorithm PRESENT,
+ macAlgorithm ABSENT } |
+ WITH COMPONENTS { signatureAlgorithm ABSENT,
+ macAlgorithm PRESENT })
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ (IMPLICIT TAGS)
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PKIPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+
+
+ Constructor with a single pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfo the pubInfo to be published (can be null if don't care is required).
+
+
+ Constructor with multiple pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfos the pubInfos to be published (can be null if don't care is required).
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Elliptic curve registry for GOST 3410-2001 / 2012.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ Registry of available named parameters for GOST 3410-94.
+
+
+ Look up the for the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Look up the for the parameter set with the given
+ OID.
+ The OID for the parameter set.
+
+
+ Look up the OID of the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Enumerate the available parameter set names in this registry.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Boolean from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null
if not set.
+ @param indirectReference The indirect reference or null
if not set.
+ @param dataValueDescriptor The data value descriptor or null
if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null
if not set.
+ @param indirectReference The indirect reference or null
if not set.
+ @param dataValueDescriptor The data value descriptor or null
if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0
single-ASN1-type
+ 1
OCTET STRING
+ 2
BIT STRING
+
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ IA5String object - this is an Ascii string.
+
+
+ return an IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ Apply the correct validation for an INTEGER primitive following the BER rules.
+
+ @param bytes The raw encoding of the integer.
+ @return true if the (in)put fails this validation.
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a numeric string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an OID from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a printable string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a T61 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ UniversalString object.
+
+
+ return a universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a universal string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a UTF8 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return a videotex string from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a videotex string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ VisibleString object.
+
+
+ return a visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a visible string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ A Definite length BIT STRING
+
+
+ Parser for a DL encoded BIT STRING.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ Parser for definite-length tagged objects.
+
+
+ Edwards Elliptic Curve Object Identifiers (RFC 8410)
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier
value
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier
value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param as CommitmentTypeQualifier
structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object
value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ Elliptic curve registry for GM.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null
.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos
is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName
or certRef
MUST be
+ null
.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName
or certRef
MUST be
+ null
.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems
is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ No longer provides any laziness.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+
+ KMACwithSHAKE128-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 256, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+
+ KMACwithSHAKE256-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 512, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+ Elliptic curve registry for NIST curves.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ 2.16.840.1.101.3.4.3.5
+
+
+ 2.16.840.1.101.3.4.3.6
+
+
+ 2.16.840.1.101.3.4.3.7
+
+
+ 2.16.840.1.101.3.4.3.8
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ RFC 6211 - id-aa-cmsAlgorithmProtect OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) 52 }
+
+
+
+ id-alg-AEADChaCha20Poly1305 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) smime(16) alg(3) 18 }
+
+ AEADChaCha20Poly1305Nonce ::= OCTET STRING (SIZE(12))
+
+
+
+ id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) alg(3) 17 }
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ RFC 5958
+
+
+ [IMPLICIT TAGS]
+
+ OneAsymmetricKey ::= SEQUENCE {
+ version Version,
+ privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
+ privateKey PrivateKey,
+ attributes [0] Attributes OPTIONAL,
+ ...,
+ [[2: publicKey [1] PublicKey OPTIONAL ]],
+ ...
+ }
+
+ PrivateKeyInfo ::= OneAsymmetricKey
+
+ Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
+
+ PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
+ { PUBLIC-KEY,
+ { PrivateKeyAlgorithms } }
+
+ PrivateKey ::= OCTET STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ PublicKey ::= BIT STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
+
+
+
+ Return true if a public key is present, false otherwise.
+
+
+ For when the public key is an ASN.1 encoding.
+
+
+ Return the public key as a raw bit string.
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ Elliptic curve registry for the SEC standard.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ Elliptic curve registry for curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt .
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+ Ukrainian object identifiers
+
+ {iso(1) member-body(2) Ukraine(804) root(2) security(1) cryptography(1) pki(1)}
+
+ { ... pki-alg(1) pki-alg-sym(3) Dstu4145WithGost34311(1) PB(1)}
+
+ DSTU4145 in polynomial basis has 2 oids, one for little-endian representation and one for big-endian
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ Parse ASN.1 objects from input , and write them to the output.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+ Holding class for the AttributeTypeAndValue structures that make up an RDN.
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ Holding class for a single Relative Distinguished Name (RDN).
+
+
+ Create a single valued RDN.
+
+ @param oid RDN type.
+ @param value RDN value.
+
+
+ Create a multi-valued RDN.
+
+ @param aAndVs attribute type/value pairs making up the RDN
+
+
+ Return the number of AttributeTypeAndValue objects in this RDN,
+
+ @return size of RDN, greater than 1 if multi-valued.
+
+
+ *
+ * RelativeDistinguishedName ::=
+ * SET OF AttributeTypeAndValue
+
+ * AttributeTypeAndValue ::= SEQUENCE {
+ * type AttributeType,
+ * value AttributeValue }
+ *
+ * @return this object as its ASN1Primitive type
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+ X.509 Section 9.8.3.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension. It shall contain
+ the algorithm identifier for the alternative digital signature algorithm used by the signer when creating an alternative
+ digital signature and by the relying party when validating the alternative digital signature.
+
+ altSignatureAlgorithm EXTENSION ::= {
+ SYNTAX AltSignatureAlgorithm
+ IDENTIFIED BY id-ce-altSignatureAlgorithm }
+
+ AltSignatureAlgorithm ::= AlgorithmIdentifier{{SupportedAlgorithms}}
+
+ When the altSignatureAlgorithm extension is included in a particular value that is an instance of a data type that
+ supports extensions, the altSignatureValue extension shall also be included.
+
+ NOTE 1 – By having a separate altSignatureAlgorithm extension, instead of having it combined with the
+ altSignatureValue extension, the alternative digital signature algorithm is protected by the alternative signature.
+ This extension may be flagged either as critical or as non-critical.
+
+ NOTE 2 – It is recommended that it be flagged as non-critical. Flagging it as critical would require all relying parties to understand
+ the extension and the alternative public-key algorithms
+
+
+ X.509 Section 9.8.4.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension.
+ This alternative signature shall be created by the issuer using its alternative private key, and it shall be verified using the
+ alternative public key of the issuer.
+
+ altSignatureValue EXTENSION ::= {
+ SYNTAX AltSignatureValue
+ IDENTIFIED BY id-ce-altSignatureValue }
+
+ AltSignatureValue ::= BIT STRING
+
+ This extension can only be created by a signer holding a multiple cryptographic algorithms public-key certificate. When
+ creating the alternative digital signature on an issued public-key certificate or CRL, the signer shall use its alternative
+ private key.
+
+ The procedures for creating and validating alternative digital signatures are specified in:
+
+ - clause 7.2.2 for public-key certificates;
+ - clause 7.10.3 for CRLs: and
+ - clause 11.4 for AVLs.
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText
class, used in
+ CertificatePolicies
X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize
here.
+
+
+
+ Creates a new DisplayText
instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText
instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText
instance.
+ Useful when reading back a DisplayText
class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable
instance.
+
+
+ Returns the stored string
object.
+
+ @return the stored text as a string
.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null
, zero is assumed, if
+ maximum is null
, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] EXPLICIT IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] EXPLICIT GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax
as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true
then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ Microsoft Server Gated Crypto (msSGC).
+ see https://www.alvestrand.no/objectid/1.3.6.1.4.1.311.10.3.3.html
+
+
+ Netscape Server Gated Crypto (nsSGC).
+ see https://www.alvestrand.no/objectid/2.16.840.1.113730.4.1.html
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference
class, used in
+ CertificatePolicies
X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization a String
value
+ @param numbers a Vector
value
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization a String
value
+ @param noticeNumbers an ASN1EncodableVector
value
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector
value
+
+
+ Creates a new NoticeReference
instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence
value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object
method here.
+
+ @return a Asn1Object
value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType
is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID
must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest
.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ The OtherName object.
+
+ OtherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+
+
+ OtherName factory method.
+ @param obj the object used to construct an instance of
+ OtherName
. It must be an instance of OtherName
+
or ASN1Sequence
.
+ @return the instance of OtherName
built from the
+ supplied object.
+ @throws java.lang.IllegalArgumentException if the object passed
+ to the factory is not an instance of OtherName
or something that
+ can be converted into an appropriate ASN1Sequence
.
+
+
+ Base constructor.
+ @param typeID the type of the other name.
+ @param value the ANY object that represents the value.
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings
instance.
+
+ @param seq an Asn1Sequence
constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings
instance.
+
+ @param mappings a HashMap
value that maps
+ string
oids
+ to other string
oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo
instance.
+
+ @param policyQualifierId a PolicyQualifierId
value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo
containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string
.
+
+
+ Creates a new PolicyQualifierInfo
instance.
+
+ @param as PolicyQualifierInfo
X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object
value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax
. It must be an instance of RoleSyntax
+
or Asn1Sequence
.
+ @return the instance of RoleSyntax
built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax
or
+ Asn1Sequence
.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName)
.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string
argument representing
+ the role name, builds a GeneralName
to hold the role name
+ and calls the constructor that takes a GeneralName
.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax
by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence
that holds
+ the encoded elements used to build this RoleSyntax
.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames
holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName
holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string
object.
+ @return the role name of this RoleSyntax represented as a
+ string
object.
+
+
+ Gets the role authority as a string[]
object.
+ @return the role authority of this RoleSyntax represented as a
+ string[]
array.
+
+
+ Implementation of the method ToAsn1Object
as
+ required by the superclass ASN1Encodable
.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ X.509 Section 9.8.2.
+
+ This public-key certificate extension, when present, shall contain the subject’s alternative public key information
+
+ subjectAltPublicKeyInfo EXTENSION ::= {
+ SYNTAX SubjectAltPublicKeyInfo
+ IDENTIFIED BY id-ce-subjectAltPublicKeyInfo }
+
+ SubjectAltPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier{{SupportedAlgorithms}},
+ subjectAltPublicKey BIT STRING }
+
+ The SubjectAltPublicKeyInfo data type has the following components:
+
+ - the algorithm subcomponent, which shall hold the algorithm that this public key is an instance of
+ - the subjectAltPublicKey subcomponent, which shall hold the alternative public key
+
+ This extension may be flagged as critical or as non-critical.
+
+ NOTE – It is recommended that it be flagged as non-critical. Flagging it as critical would require relying parties to understand this
+ extension and the alternative public-key algorithm.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj
can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null
.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj
can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj
can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList
of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList
.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice
class, used in
+ CertificatePolicies
X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice
instance.
+
+ @param noticeRef a NoticeReference
value
+ @param explicitText a DisplayText
value
+
+
+ Creates a new UserNotice
instance.
+
+ @param noticeRef a NoticeReference
value
+ @param str the explicitText field as a string.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ the subject’s alternative public key information
+
+
+ the algorithm identifier for the alternative digital signature algorithm.
+
+
+ alternative signature shall be created by the issuer using its alternative private key.
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+ return the parsed value of the extension represented by the object identifier
+ passed in.
+
+ @return the parsed value of the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A unified elliptic curve registry of the various standard-specific registries.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in all the registries.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ Elliptic curve registry for the curves defined in X.962 EC-DSA.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2
.
+ @param primeP The prime p
defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m
.
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m
.
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ Packet representing AEAD encrypted data. At the moment this appears to exist in the following
+ expired draft only, but it's appearing despite this.
+
+ @ref https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ is detected and fails.
+
+ By default a missing CRC will not cause an exception. To force CRC detection use:
+
+ ArmoredInputStream aIn = ...
+
+ aIn.setDetectMissingCRC(true);
+
+
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Change how the stream should react if it encounters missing CRC checksum.
+ The default value is false (ignore missing CRC checksums). If the behavior is set to true,
+ an {@link IOException} will be thrown if a missing CRC checksum is encountered.
+
+ @param detectMissing ignore missing CRC sums
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. Any current value(s) under the same name will be
+ replaced by the new one. A null value will clear the entry for name. *
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Set an additional header entry. The current value(s) will continue to exist together
+ with the new one. Adding a null value has no effect.
+
+ @param name the name of the header entry.
+ @param value the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Base constructor specifying whether or not to use packets in the new format wherever possible.
+
+ Output stream to write to.
+ true if use new format packets, false if backwards compatible
+ preferred.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ Return the signatures fingerprint.
+ @return fingerprint (digest prefix) of the signature
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the Modification Detection (packets 18 and 19)
+
+
+ Identifier for the AEAD Encrypted Data Packet (packet 20) and version 5
+ Symmetric-Key Encrypted Session Key Packets (packet 3)
+
+
+ Identifier for the Version 5 Public-Key Packet format and corresponding new
+ fingerprint format
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ packet giving the intended recipient fingerprint.
+
+
+ packet giving the issuer key fingerprint.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ Regexp Packet - RFC 4880 5.2.3.14. Note: the RFC says the byte encoding is to be null terminated.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ RFC 4880, Section 5.2.3.25 - Signature Target subpacket.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a signing subkey to the key ring to be generated with default certification and a primary key binding signature.
+
+ The key pair.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification using SHA-1.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+
+ Add a signing subkey with specific hashed and unhashed packets associated with it and
+ default certifications, including the primary-key binding signature.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+ Thrown if the key checksum is invalid.
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+
+ Read all available objects, returning only those that are assignable to the specified type.
+
+ An containing the filtered objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The key ID associated with the public key.
+
+
+ The fingerprint of the public key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this could be a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Return any userIDs associated with the key in raw byte form.
+ No attempt is made to convert the IDs into strings.
+ An IEnumerable of byte[].
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Return any signatures associated with the passed in key identifier keyID.
+ the key id to be matched.
+ An IEnumerable of PgpSignature objects issued by the key with keyID.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Encode the key to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed in raw byte form.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from (in its raw byte form).
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+
+ Merge the given local public key with another, potentially fresher copy. The resulting public key
+ contains the sum of both keys' user-ids and signatures.
+
+
+ If joinTrustPackets is set to true and the copy carries a trust packet, the joined key will copy the
+ trust-packet from the copy. Otherwise, it will carry the trust packet of the local key.
+
+ local public key.
+ copy of the public key (e.g. from a key server).
+ if true, trust packets from the copy are copied over into the resulting key.
+
+ if true, subkey signatures on the copy will be present in the
+ merged key, even if key was not a subkey before.
+ joined key.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ This method will ignore trust packets on the second copy of the certificate and instead
+ copy the local certificate's trust packets to the joined certificate.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @return joined key ring
+ @throws PGPException
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ For each subkey holds: If joinTrustPackets is set to true and the second key is carrying a trust packet,
+ the trust packet will be copied to the joined key.
+ Otherwise, the joined key will carry the trust packet of the local copy.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @param joinTrustPackets if true, trust packets from the second certificate copy will be carried over into the joined certificate
+ @param allowSubkeySigsOnNonSubkey if true, the resulting joined certificate may carry subkey signatures on its primary key
+ @return joined certificate
+ @throws PGPException
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ The fingerprint of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return any keys carrying a signature issued by the key represented by keyID.
+
+ @param keyID the key id to be matched against.
+ @return an iterator (possibly empty) of PGPPublicKey objects carrying signatures from keyID.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return the digest prefix of the signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+ Encode the signature to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Base constructor, creates an empty generator.
+
+
+
+
+ Constructor for pre-initialising the generator from an existing one.
+
+
+ sigSubV an initial set of subpackets.
+
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Return a copy of the subpackets in this vector.
+
+ @return an array containing the vector subpackets in order.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+ Return the EC curve name for the passed in OID.
+
+ @param oid the EC curve object identifier in the PGP key
+ @return a string representation of the OID.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ Wrap a PKIMessage ASN.1 structure.
+
+ PKI message.
+
+
+
+ Create a PKIMessage from the passed in bytes.
+
+ BER/DER encoding of the PKIMessage
+
+
+
+ Return true if this message has protection bits on it. A return value of true
+ indicates the message can be used to construct a ProtectedPKIMessage.
+
+
+
+
+ Wrapper for a PKIMessage with protection attached to it.
+
+
+
+
+ Wrap a general message.
+
+ If the general message does not have protection.
+ The General message
+
+
+
+ Wrap a PKI message.
+
+ If the PKI message does not have protection.
+ The PKI message
+
+
+ Message header
+
+
+ Message body
+
+
+
+ Return the underlying ASN.1 structure contained in this object.
+
+ PkiMessage structure
+
+
+
+ Determine whether the message is protected by a password based MAC. Use verify(PKMACBuilder, char[])
+ to verify the message if this method returns true.
+
+ true if protection MAC PBE based, false otherwise.
+
+
+
+ Return the extra certificates associated with this message.
+
+ an array of extra certificates, zero length if none present.
+
+
+
+ Verify a message with a public key based signature attached.
+
+ a factory of signature verifiers.
+ true if the provider is able to create a verifier that validates the signature, false otherwise.
+
+
+
+ Verify a message with password based MAC protection.
+
+ MAC builder that can be used to construct the appropriate MacCalculator
+ the MAC password
+ true if the passed in password and MAC builder verify the message, false otherwise.
+ if algorithm not MAC based, or an exception is thrown verifying the MAC.
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Add a generator to produce the recipient info required.
+
+ a generator of a recipient info object.
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ a holding class for a file of data to be processed.
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained in this message.
+
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained in this message.
+
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as string objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Dictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in X.509 certificate issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certificate X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ Protected constructor. In some cases clients have their own idea about how to encode
+ the signed attributes and calculate the signature. This constructor is to allow developers
+ to deal with that by extending off the class and overriding e.g. SignedAttributes property.
+
+ @param baseInfo the SignerInformation to base this one on.
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+
+ Carrier for an authenticator control.
+
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+
+
+
+ Create a CertificateRequestMessage from the passed in bytes.
+
+ BER/DER encoding of the CertReqMsg structure.
+
+
+
+ Return the underlying ASN.1 object defining this CertificateRequestMessage object.
+
+ A CertReqMsg
+
+
+
+ Return the certificate template contained in this message.
+
+ a CertTemplate structure.
+
+
+
+ Return whether or not this request has control values associated with it.
+
+ true if there are control values present, false otherwise.
+
+
+
+ Return whether or not this request has a specific type of control value.
+
+ the type OID for the control value we are checking for.
+ true if a control value of type is present, false otherwise.
+
+
+
+ Return a control value of the specified type.
+
+ the type OID for the control value we are checking for.
+ the control value if present, null otherwise.
+
+
+
+ Return whether or not this request message has a proof-of-possession field in it.
+
+ true if proof-of-possession is present, false otherwise.
+
+
+
+ Return the type of the proof-of-possession this request message provides.
+
+ one of: popRaVerified, popSigningKey, popKeyEncipherment, popKeyAgreement
+
+
+
+ Return whether or not the proof-of-possession (POP) is of the type popSigningKey and
+ it has a public key MAC associated with it.
+
+ true if POP is popSigningKey and a PKMAC is present, false otherwise.
+
+
+
+ Return whether or not a signing key proof-of-possession (POP) is valid.
+
+ a provider that can produce content verifiers for the signature contained in this POP.
+ true if the POP is valid, false otherwise.
+ if there is a problem in verification or content verifier creation.
+ if POP not appropriate.
+
+
+
+ Return the ASN.1 encoding of the certReqMsg we wrap.
+
+ a byte array containing the binary encoding of the certReqMsg.
+
+
+
+ Create a builder that makes EncryptedValue structures.
+
+ wrapper a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+
+
+
+
+ Create a builder that makes EncryptedValue structures with fixed length blocks padded using the passed in padder.
+
+ a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+ padder a padder to ensure that the EncryptedValue created will always be a constant length.
+
+
+
+
+ Build an EncryptedValue structure containing the passed in pass phrase.
+
+ a revocation pass phrase.
+ an EncryptedValue containing the encrypted pass phrase.
+
+
+
+
+ Build an EncryptedValue structure containing the certificate contained in
+ the passed in holder.
+
+ a holder containing a certificate.
+ an EncryptedValue containing the encrypted certificate.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Build an EncryptedValue structure containing the private key contained in
+ the passed info structure.
+
+ a PKCS#8 private key info structure.
+ an EncryptedValue containing an EncryptedPrivateKeyInfo structure.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Generic interface for a CertificateRequestMessage control value.
+
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the value contained in this control object.
+
+
+
+
+ An encrypted value padder is used to make sure that prior to a value been
+ encrypted the data is padded to a standard length.
+
+
+
+
+ Return a byte array of padded data.
+
+ the data to be padded.
+ a padded byte array containing data.
+
+
+
+
+ Return a byte array of with padding removed.
+
+ the data to be padded.
+ an array containing the original unpadded data.
+
+
+
+
+ Basic constructor - build from an PKIArchiveOptions structure.
+
+ the ASN.1 structure that will underlie this control.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_pkiArchiveOptions
+
+
+
+ Return the underlying ASN.1 object.
+
+ a PKIArchiveOptions structure.
+
+
+
+ Return the archive control type, one of: encryptedPrivKey,keyGenParameters,or archiveRemGenPrivKey.
+
+ the archive control type.
+
+
+
+ Return whether this control contains enveloped data.
+
+ true if the control contains enveloped data, false otherwise.
+
+
+
+ Return the enveloped data structure contained in this control.
+
+ a CMSEnvelopedData object.
+
+
+
+ Basic constructor - specify the contents of the PKIArchiveControl structure.
+
+ the private key to be archived.
+ the general name to be associated with the private key.
+
+
+
+ Add a recipient generator to this control.
+ recipient generator created for a specific recipient.
+ this builder object.
+
+
+ Build the PKIArchiveControl using the passed in encryptor to encrypt its contents.
+ a suitable content encryptor.
+ a PKIArchiveControl object.
+
+
+
+ Default, IterationCount = 1000, OIW=IdSha1, Mac=HmacSHA1
+
+
+
+
+ Defaults with IPKMacPrimitivesProvider
+
+
+
+
+
+ Create.
+
+ The Mac provider
+ Digest Algorithm Id
+ Mac Algorithm Id
+
+
+
+ Create a PKMAC builder enforcing a ceiling on the maximum iteration count.
+
+ supporting calculator
+ max allowable value for iteration count.
+
+
+ Set the salt length in octets.
+
+ @param saltLength length in octets of the salt to be generated.
+ @return the generator
+
+
+
+ Set the iteration count.
+
+ the iteration count.
+ this
+ if iteration count is less than 100
+
+
+
+ Set PbmParameters
+
+ The parameters.
+ this
+
+
+
+ The Secure random
+
+ The random.
+ this
+
+
+
+ Build an IMacFactory.
+
+ The password.
+ IMacFactory
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_regToken
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+ a UTF8String.
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+ Converts the given password to a BigInteger mod q.
+
+
+ Converts the given password (UTF8 encoded) to a BigInteger mod q.
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The AEAD ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ This exception is thrown if a buffer that is meant to have output copied into it turns out to be too
+ short, or if we've been given insufficient input.
+
+ In general this exception will get thrown rather than an .
+
+
+
+ ASCON v1.2 Hash, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 Hash with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ ASCON v1.2 XOF, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 XOF with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ Implementation of the cryptographic hash function Blake2b.
+
+ Blake2b offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ Blake2b offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2b is optimized for 64-bit platforms and produces digests of any size
+ between 1 and 64 bytes.
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be a multiple of 8 and less than 256.
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ Implementation of the eXtendable Output Function (XOF) BLAKE2xs.
+
+ BLAKE2xs offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2xs offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2xs is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 2^16-2 bytes. The length can also be unknown and then the maximum
+ length will be 2^32 blocks of 32 bytes.
+
+
+ Magic number to indicate an unknown length of digest
+
+
+ Expected digest length for the xof. It can be unknown.
+
+
+ Root hash that will take the updates
+
+
+ Digest of the root hash
+
+
+ Digest of each round of the XOF
+
+
+ Current position for a round
+
+
+ Overall position of the digest. It is useful when the length is known
+ in advance to get last block length.
+
+
+ Keep track of the round number to detect the end of the digest after
+ 2^32 blocks of 32 bytes.
+
+
+ Current node offset incremented by 1 every round.
+
+
+ BLAKE2xs for hashing with unknown digest length
+
+
+ BLAKE2xs for hashing
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+
+
+ BLAKE2xs with key
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+
+
+ BLAKE2xs with key, salt and personalization
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Return the maximum size in bytes the digest can produce when the length
+ is unknown
+
+ @return byte length of the largest digest with unknown length
+
+
+ Update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt, personal string remain.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+
+
+ Start outputting the results of the final calculation for this digest. Unlike doFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+ @return the number of bytes written
+
+
+ Already outputting error.
+
+
+ Number of Words.
+
+
+ Number of Rounds.
+
+
+ Buffer length.
+
+
+ Chunk length.
+
+
+ ChunkStart Flag.
+
+
+ ChunkEnd Flag.
+
+
+ Parent Flag.
+
+
+ Root Flag.
+
+
+ KeyedHash Flag.
+
+
+ DeriveContext Flag.
+
+
+ DeriveKey Flag.
+
+
+ Chaining0 State Locations.
+
+
+ Chaining1 State Location.
+
+
+ Chaining2 State Location.
+
+
+ Chaining3 State Location.
+
+
+ Chaining4 State Location.
+
+
+ Chaining5 State Location.
+
+
+ Chaining6 State Location.
+
+
+ Chaining7 State Location.
+
+
+ IV0 State Locations.
+
+
+ IV1 State Location.
+
+
+ IV2 State Location.
+
+
+ IV3 State Location.
+
+
+ Count0 State Location.
+
+
+ Count1 State Location.
+
+
+ DataLen State Location.
+
+
+ Flags State Location.
+
+
+ Message word permutations.
+
+
+ Blake3 Initialization Vector.
+
+
+ The byte input/output buffer.
+
+
+ The key.
+
+
+ The chaining value.
+
+
+ The state.
+
+
+ The message Buffer.
+
+
+ The indices.
+
+
+ The chainingStack.
+
+
+ The default digestLength.
+
+
+ Are we outputting?
+
+
+ How many more bytes can we output?
+
+
+ The current mode.
+
+
+ The output mode.
+
+
+ The output dataLen.
+
+
+ The block counter.
+
+
+ The # of bytes in the current block.
+
+
+ The position of the next byte in the buffer.
+
+
+ the default digest size (in bits)
+
+
+ Constructor.
+
+ @param pSource the source digest.
+
+
+ Initialise.
+
+ @param pParams the parameters.
+
+
+ Compress next block of the message.
+
+ @param pMessage the message buffer
+ @param pMsgPos the position within the message buffer
+
+
+ Initialise M from message.
+
+ @param pMessage the source message
+ @param pMsgPos the message position
+
+
+ Adjust the stack.
+
+
+ Compress final block.
+
+ @param pDataLen the data length
+
+
+ Process the stack.
+
+
+ Perform compression.
+
+
+ Perform a round.
+
+
+ Adjust Chaining after compression.
+
+
+ Mix function G.
+
+ @param msgIdx the message index
+ @param posA position A in V
+ @param posB position B in V
+ @param posC position C in V
+ @param posD poistion D in V
+
+
+ initialise the indices.
+
+
+ PermuteIndices.
+
+
+ Initialise null key.
+
+
+ Initialise key.
+
+ @param pKey the keyBytes
+
+
+ Initialise key from context.
+
+
+ Initialise chunk block.
+
+ @param pDataLen the dataLength
+ @param pFinal is this the final chunk?
+
+
+ Initialise parent block.
+
+
+ Initialise output block.
+
+
+ IncrementBlockCount.
+
+
+ ResetBlockCount.
+
+
+ Set root indication.
+
+
+
+ Customizable SHAKE function.
+
+
+
+
+ Base constructor
+
+ bit length of the underlying SHAKE function, 128 or 256.
+ the function name string, note this is reserved for use by NIST. Avoid using it if not required.
+ the customization string - available for local use.
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+
+ ParallelHash - a hash designed to support the efficient hashing of very long strings, by taking advantage,
+ of the parallelism available in modern processors with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+ @param B the blocksize (in bytes) for hashing.
+
+
+ Photon-Beetle, https://www.isical.ac.in/~lightweight/beetle/
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/readonlyist-round/updated-spec-doc/photon-beetle-spec-readonly.pdf
+
+ Photon-Beetle with reference to C Reference Impl from: https://github.com/PHOTON-Beetle/Software
+
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ Sparkle v1.2, based on the current round 3 submission, https://sparkle-lwc.github.io/ .
+
+ Reference C implementation: https://github.com/cryptolu/sparkle.
+ Specification:
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/sparkle-spec-final.pdf .
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ TupleHash - a hash designed to simply hash a tuple of input strings, any or all of which may be empty strings,
+ in an unambiguous way with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto and Rijmen.
+
+
+ Copy constructor. This will copy the state of the provided message digest.
+
+
+ Reset the chaining variables
+
+
+ Elliptic curve registry for various customized curve implementations.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AesWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AESWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ RFC 5794.
+
+ ARIA is a 128-bit block cipher with 128-, 192-, and 256-bit keys.
+
+
+
+ An implementation of the ARIA Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AriaWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AriaWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ ASCON v1.2 AEAD, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 AEAD with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ Constants
+
+
+ Variables to hold the state of the engine during encryption and
+ decryption
+
+
+ Initialize a Grain-128AEAD cipher.
+
+ @param forEncryption Whether or not we are for encryption.
+ @param param The parameters required to set up the cipher.
+ @throws ArgumentException If the params argument is inappropriate.
+
+
+ 320 clocks initialization phase.
+
+
+ Get output from non-linear function g(x).
+
+ @return Output from NFSR.
+
+
+ Get output from linear function f(x).
+
+ @return Output from LFSR.
+
+
+ Get output from output function h(x).
+
+ @return y_t.
+
+
+ Shift array 1 bit and add val to index.Length - 1.
+
+ @param array The array to shift.
+ @param val The value to shift in.
+ @return The shifted array with val added to index.Length - 1.
+
+
+ Set keys, reset cipher.
+
+ @param keyBytes The key.
+ @param ivBytes The IV.
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (barring 1 typo at the
+ end of the MulInv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note: This algorithm was patented in the USA, Japan and Europe. These patents expired in 2011/2012.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.
+
+ The implementation here is based on the document http://eprint.iacr.org/2008/329.pdf
+ by Whitfield Diffie and George Ledin, which is a translation of Prof. LU Shu-wang's original standard.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null
to use the current key.
+ the 2 word (128 bit) tweak, or null
to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Base class for format-preserving encryption.
+
+
+
+ Process length bytes from inBuf, writing the output to outBuf.
+
+ number of bytes output.
+ input data.
+ offset in input data to start at.
+ number of bytes to process.
+ destination buffer.
+ offset to start writing at in destination buffer.
+
+
+
+ Initialize the FPE engine for encryption/decryption.
+
+ number of bytes output.
+ true if initialising for encryption, false otherwise.
+ the key and other parameters to use to set the engine up.
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Converts a character password to bytes incorporating the required trailing zero byte.
+
+ @param password the password to be encoded.
+ @return a byte representation of the password in UTF8 + trailing zero.
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost
. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD1 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, 2y,2b or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$' using version
+ '2y'.
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, may be 2b, 2y or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+
+ Generator for PBE derived keys and IVs as usd by OpenSSL. Originally this scheme was a simple extension of
+ PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1. The default digest was changed to SHA-256 with
+ OpenSSL 1.1.0. This implementation still defaults to MD5, but the digest can now be set.
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest the original MD5.
+
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest as specified.
+
+ the digest to use as the PRF.
+
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15]
with the required bits in r
cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r
(second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15]
with the required bits in r
cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r
portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8)
.
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ int.MaxValue / (128 * r * 8)
.
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for mapping from an alphabet to a set of indexes
+ suitable for use with FPE.
+
+
+
+ Return the number of characters in the alphabet.
+
+ the radix for the alphabet.
+
+
+
+ Return the passed in char[] as a byte array of indexes (indexes
+ can be more than 1 byte)
+
+ an index array.
+ characters to be mapped.
+
+
+
+ Return a char[] for this alphabet based on the indexes passed.
+
+ an array of char corresponding to the index values.
+ input array of indexes.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Return an upper limit for the size of the result.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+
+ Base interface for a ciphers that do not require data to be block aligned.
+
+ Note: In cases where the underlying algorithm is block based, these ciphers may add or remove padding as needed.
+
+
+
+
+
+ Return the size of the output buffer required for a Write() plus a
+ close() with the write() being passed inputLen bytes.
+
+ The returned size may be dependent on the initialisation of this cipher
+ and may not be accurate once subsequent input data is processed as the cipher may
+ add, add or remove padding, as it sees fit.
+
+
+ The space required to accommodate a call to processBytes and doFinal with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Return the size of the output buffer required for a write() with the write() being
+ passed inputLen bytes and just updating the cipher output.
+
+ The space required to accommodate a call to processBytes with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Gets the stream for reading/writing data processed/to be processed.
+
+ The stream associated with this cipher.
+
+
+
+ Base interface for cipher builders.
+
+
+
+
+ Return the algorithm and parameter details associated with any cipher built.
+
+
+
+
+ Return the maximum output size that a given input will produce.
+
+ the length of the expected input.
+ The maximum possible output size that can produced for the expected input length.
+
+
+
+ Build a cipher that operates on the passed in stream.
+
+ The stream to write/read any encrypted/decrypted data.
+ A cipher based around the given stream.
+
+
+
+ A cipher builder that can also return the key it was initialized with.
+
+
+
+
+ Return the key we were initialized with.
+
+
+
+ all parameter classes implement this.
+
+
+
+ Interface describing a provider of cipher builders for creating decrypting ciphers.
+
+
+
+
+ Return a cipher builder for creating decrypting ciphers.
+
+ The algorithm details/parameters to use to create the final cipher.
+ A new cipher builder.
+
+
+ Base interface for general purpose byte derivation functions.
+
+
+ The message digest used as the basis for the function.
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ Base interface for a message digest.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the digest produced by this message digest.
+ the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size, in bytes, of the internal buffer used by this digest.
+ the size, in bytes, of the internal buffer used by this digest.
+
+
+ Update the message digest with a single byte.
+ the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Close the digest, producing the final digest value.
+ This call leaves the digest reset.
+ the byte array the digest is to be copied into.
+ the offset into the byte array the digest is to start at.
+ the number of bytes written
+
+
+ Reset the digest back to its initial state.
+
+
+
+ Base interface for operator factories that create stream-based digest calculators.
+
+
+
+ The algorithm details object for calculators made by this factory.
+
+
+ Return the size of the digest associated with this factory.
+ The length of the digest produced by this calculators from this factory in bytes.
+
+
+
+ Create a stream calculator for the digest associated with this factory. The stream
+ calculator is used for the actual operation of entering the data to be digested
+ and producing the digest block.
+
+ A calculator producing an IBlockResult with the final digest in it.
+
+
+ Interface for classes implementing the Digital Signature Algorithm
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signature generation or signature verification.
+ true if we are generating a signature, false otherwise.
+ key parameters for signature generation.
+
+
+ Sign the passed in message (usually the output of a hash function).
+ the message to be signed.
+ two big integers representing the r and s values respectively.
+
+
+ The order of the group that the r, s values in signatures belong to.
+
+
+ Verify the message message against the signature values r and s.
+ the message that was supposed to have been signed.
+ the r signature value.
+ the s signature value.
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+ the encapsulated secret.
+
+
+
+ The length in bytes of the encapsulation.
+
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+
+ An SecretWithEncapsulation derived from the recipient public key.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+
+ Base interface for a key unwrapper.
+
+
+
+
+ The parameter set used to configure this key unwrapper.
+
+
+
+
+ Unwrap the passed in data.
+
+ The array containing the data to be unwrapped.
+ The offset into cipherText at which the unwrapped data starts.
+ The length of the data to be unwrapped.
+ an IBlockResult containing the unwrapped key data.
+
+
+
+ Base interface for a key wrapper.
+
+
+
+
+ The parameter set used to configure this key wrapper.
+
+
+
+
+ Wrap the passed in key data.
+
+ The key data to be wrapped.
+ an IBlockResult containing the wrapped key data.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+ The key or other data required by the MAC.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the MAC produced by this implementation.
+ the size, in bytes, of the MAC produced by this implementation.
+
+
+ Update the MAC with a single byte.
+ the input byte to be entered.
+
+
+ Update the MAC with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Perform final calculations, producing the result MAC.
+ This call leaves the MAC reset.
+ the byte array the MAC is to be copied into.
+ the offset into the byte array the MAC is to start at.
+ the number of bytes written
+
+
+ Reset the MAC back to its initial state.
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ This exception is thrown whenever we find something we don't expect in a message.
+
+
+
+ Return the secret associated with the encapsulation.
+
+ the secret the encapsulation is for.
+
+
+
+ Return the data that carries the secret in its encapsulated form.
+
+ the encapsulation of the secret.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signing or verification.
+ true if for signing, false otherwise.
+ necessary parameters.
+
+
+ Update the signer with a single byte.
+ the input byte to be entered.
+
+
+ Update the signer with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Generate a signature for the message we've been loaded with using the key we were initialised with.
+
+ A byte array containing the signature for the message.
+
+
+ Return true if the internal state represents the signature described in the passed in array.
+
+ an array containing the candidate signature to verify.
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the signer back to its initial state.
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from , putting the result into .
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the input buffer is too small.
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra methods required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this XOF to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this XOF. Unlike DoFinal, this method
+ will continue producing output until the XOF is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+ This exception is thrown whenever a cipher requires a change of key, IV or similar after x amount of
+ bytes enciphered.
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ GCM-SIV Mode.
+ It should be noted that the specified limit of 236 bytes is not supported. This is because all bytes are
+ cached in a ByteArrayOutputStream object (which has a limit of a little less than 231 bytes),
+ and are output on the DoFinal() call (which can only process a maximum of 231 bytes).
+ The practical limit of 231 - 24 bytes is policed, and attempts to breach the limit will be rejected
+ In order to properly support the higher limit, an extended form of ByteArrayOutputStream would be needed
+ which would use multiple arrays to store the data. In addition, a new doOutput method would be required (similar
+ to that in XOF digests), which would allow the data to be output over multiple calls. Alternatively an extended
+ form of ByteArrayInputStream could be used to deliver the data.
+
+
+ The buffer length.
+
+
+ The halfBuffer length.
+
+
+ The nonce length.
+
+
+ The maximum data length (AEAD/PlainText). Due to implementation constraints this is restricted to the maximum
+ array length (https://programming.guide/java/array-maximum-length.html) minus the BUFLEN to allow for the MAC
+
+
+ The top bit mask.
+
+
+ The addition constant.
+
+
+ The initialisation flag.
+
+
+ The aeadComplete flag.
+
+
+ The cipher.
+
+
+ The multiplier.
+
+
+ The gHash buffer.
+
+
+ The reverse buffer.
+
+
+ The aeadHasher.
+
+
+ The dataHasher.
+
+
+ The plainDataStream.
+
+
+ The encryptedDataStream (decryption only).
+
+
+ Are we encrypting?
+
+
+ The initialAEAD.
+
+
+ The nonce.
+
+
+ The flags.
+
+
+ Constructor.
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+ @param pMultiplier the multiplier
+
+
+ check AEAD status.
+ @param pLen the aeadLength
+
+
+ check status.
+ @param pLen the dataLength
+
+
+ Reset Streams.
+
+
+ Obtain buffer length (allowing for null).
+ @param pBuffer the buffere
+ @return the length
+
+
+ calculate tag.
+ @return the calculated tag
+
+
+ complete polyVAL.
+ @return the calculated value
+
+
+ process lengths.
+
+
+ perform the next GHASH step.
+ @param pNext the next value
+
+
+ xor a full block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+
+
+ xor a partial block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+ @param pOffset the offset in the right operand
+ @param pLength the length of data in the right operand
+
+
+ increment the counter.
+ @param pCounter the counter to increment
+
+
+ multiply by X.
+ @param pValue the value to adjust
+
+
+ Derive Keys.
+ @param pKey the keyGeneration key
+
+
+ Hash Control.
+
+
+ Cache.
+
+
+ Single byte cache.
+
+
+ Count of active bytes in cache.
+
+
+ Count of hashed bytes.
+
+
+ Obtain the count of bytes hashed.
+ @return the count
+
+
+ Reset the hasher.
+
+
+ update hash.
+ @param pByte the byte
+
+
+ update hash.
+ @param pBuffer the buffer
+ @param pOffset the offset within the buffer
+ @param pLen the length of data
+
+
+ complete hash.
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ An IAeadCipher based on an IBlockCipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ The block cipher underlying this algorithm.
+
+
+
+ A cipher mode that includes authenticated encryption with a streaming mode and optional
+ associated data.
+
+
+ Implementations of this interface may operate in a packet mode (where all input data is
+ buffered and processed during the call to DoFinal, or in a streaming mode (where output
+ data is incrementally produced with each call to ProcessByte or ProcessBytes. This is
+ important to consider during decryption: in a streaming mode, unauthenticated plaintext
+ data may be output prior to the call to DoFinal that results in an authentication failure.
+ The higher level protocol utilising this cipher must ensure the plaintext data is handled
+ appropriately until the end of data is reached and the entire ciphertext is authenticated.
+
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+ Return the
underlying this cipher mode.
+
+
+ Indicates whether this cipher mode can handle partial blocks.
+
+
+
+ Reset the cipher mode to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm.
+
+ For those still concerned about the original patents around this, please see:
+ https://mailarchive.ietf.org/arch/msg/cfrg/qLTveWOdTJcLn4HP3ev-vrj05Vg/
+ Text reproduced below:
+
+ Phillip Rogaway<rogaway@cs.ucdavis.edu> Sat, 27 February 2021 02:46 UTC
+
+ I can confirm that I have abandoned all OCB patents and placed into the public domain all OCB-related IP of
+ mine. While I have been telling people this for quite some time, I don't think I ever made a proper announcement
+ to the CFRG or on the OCB webpage. Consider that done.
+
+
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface.
+
+
+ Initialise the padder.
+ A source of randomness, if any required.
+
+
+ The name of the algorithm this padder implements.
+
+
+ Add padding to the passed in block.
+ the block to add padding to.
+ the offset into the block the padding is to start at.
+ the number of bytes of padding added.
+
+
+ Determine the length of padding present in the passed in block.
+ the block to check padding for.
+ the number of bytes of padding present.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+
+ A padder that adds the padding according to the scheme referenced in ISO 7814-4 - scheme 2 from ISO 9797-1.
+ The first byte is 0x80, rest is 0x00
+
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds PKCS7/PKCS5 padding to a block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+ This padding pads the block out compliment of the last bit of the plain text.
+
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is passed in random padding is assumed,
+ otherwise padding with zeros is used.
+
+
+
+ A padder that adds zero byte padding to a block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Blake3 Parameters.
+
+
+ Create a key parameter.
+ the context
+ the parameter
+
+
+ Create a key parameter.
+ the key
+ the parameter
+
+
+ Obtain the key.
+ the key
+
+
+ Clear the key bytes.
+
+
+ Obtain the salt.
+ the salt
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+
+ Base constructor - suffix fixed input data only.
+
+ the KDF seed
+ fixed input data to follow counter.
+ length of the counter in bits
+
+
+
+ Base constructor - prefix and suffix fixed input data.
+
+ the KDF seed
+ fixed input data to precede counter
+ fixed input data to follow counter.
+ length of the counter in bits.
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null
if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null
if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher
, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null
to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null
to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Supports use of additional input.
+
+ RFC 6979 3.6. Additional data may be added to the input of HMAC [..]. A use case may be a protocol that
+ requires a non-deterministic signature algorithm on a system that does not have access to a high-quality
+ random source. It suffices that the additional data[..] is non-repeating(e.g., a signature counter or a
+ monotonic clock) to ensure "random-looking" signatures are indistinguishable, in a cryptographic way, from
+ plain (EC)DSA signatures.
+
+ By default there is no additional input. Override this method to supply additional input, bearing in mind
+ that this calculator may be used for many signatures.
+
+ The to which the additional input should be added.
+
+
+
+ An interface for different encoding formats for DSA signatures.
+
+
+
+ Decode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ An encoding of the (r, s) pair of a DSA signature.
+ The (r, s) of a DSA signature, stored in an array of exactly two elements, r followed by s.
+
+
+ Encode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ The r value of a DSA signature.
+ The s value of a DSA signature.
+ An encoding of the DSA signature given by the provided (r, s) pair.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+
+ A simple block result object which just carries a byte array.
+
+
+
+
+ Base constructor - a wrapper for the passed in byte array.
+
+ The byte array to be wrapped.
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+ Create an AlgorithmIdentifier for the passed in encryption algorithm.
+
+ @param encryptionOID OID for the encryption algorithm
+ @param keySize key size in bits (-1 if unknown)
+ @param random SecureRandom to use for parameter generation.
+ @return a full AlgorithmIdentifier including parameters
+ @throws IllegalArgumentException if encryptionOID cannot be matched
+
+
+ A basic alphabet mapper that just creates a mapper based on the
+ passed in array of characters.
+
+
+ Base constructor.
+
+ @param alphabet a string of characters making up the alphabet.
+
+
+ Base constructor.
+
+ @param alphabet an array of characters making up the alphabet.
+
+
+ Create a key generator for the passed in Object Identifier.
+
+ @param algorithm the Object Identifier indicating the algorithn the generator is for.
+ @param random a source of random to initialise the generator with.
+ @return an initialised CipherKeyGenerator.
+ @throws IllegalArgumentException if the algorithm cannot be identified.
+
+
+ Magic value for proprietary OpenSSH private key.
+ C string so null terminated.
+
+
+ Encode a cipher parameters into an OpenSSH private key.
+ This does not add headers like ----BEGIN RSA PRIVATE KEY----
+
+ @param parameters the cipher parameters.
+ @return a byte array
+
+
+ Parse a private key.
+
+ This method accepts the body of the OpenSSH private key.
+ The easiest way to extract the body is to use PemReader, for example:
+
+ byte[] blob = new PemReader([reader]).readPemObject().getContent();
+ CipherParameters params = parsePrivateKeyBlob(blob);
+
+ @param blob The key.
+ @return A cipher parameters instance.
+
+
+ allIntegers returns true if the sequence holds only DerInteger types.
+
+
+
+ Parse a public key.
+
+ This method accepts the bytes that are Base64 encoded in an OpenSSH public key file.
+
+ @param encoded The key.
+ @return An AsymmetricKeyParameter instance.
+
+
+ Encode a public key from an AsymmetricKeyParameter instance.
+
+ @param cipherParameters The key to encode.
+ @return the key OpenSSH encoded.
+ @throws IOException
+
+
+ Parse a public key from an SSHBuffer instance.
+
+ @param buffer containing the SSH public key.
+ @return A CipherParameters instance.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Use KeyTransRecipientInfoGenerator
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal
is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale
of the SimpleBigDecimal
.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimal
s
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimal
s returns a
+ SimpleBigDecimal
with double scale.
+
+
+ Returns a SimpleBigDecimal
representing the same numerical
+ value as value
.
+ @param value The value of the SimpleBigDecimal
to be
+ created.
+ @param scale The scale of the SimpleBigDecimal
to be
+ created.
+ @return The such created SimpleBigDecimal
.
+
+
+ Constructor for SimpleBigDecimal
. The value of the
+ constructed SimpleBigDecimal
Equals bigInt /
+ 2scale
.
+ @param bigInt The bigInt
value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal
.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu
's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ The αu
's for a=0
as an array
+ of ZTauElement
s.
+
+
+ The αu
's for a=0
as an array
+ of TNAFs.
+
+
+ The αu
's for a=1
as an array
+ of ZTauElement
s.
+
+
+ The αu
's for a=1
as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ
of
+ Z[τ]
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return The norm of λ
.
+
+
+ Computes the norm of an element λ
of
+ R[τ]
, where λ = u + vτ
+ and u
and u
are real numbers (elements of
+ R
).
+ @param mu The parameter μ
of the elliptic curve.
+ @param u The real part of the element λ
of
+ R[τ]
.
+ @param v The τ
-adic part of the element
+ λ
of R[τ]
.
+ @return The norm of λ
.
+
+
+ Rounds an element λ
of R[τ]
+ to an element of Z[τ]
, such that their difference
+ has minimal norm. λ
is given as
+ λ = λ0 + λ1τ
.
+ @param lambda0 The component λ0
.
+ @param lambda1 The component λ1
.
+ @param mu The parameter μ
of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ]
.
+ @throws ArgumentException if lambda0
and
+ lambda1
do not have same scale.
+
+
+ Approximate division by n
. For an integer
+ k
, the value λ = s k / n
is
+ computed to c
bits of accuracy.
+ @param k The parameter k
.
+ @param s The curve parameter s0
or
+ s1
.
+ @param vm The Lucas Sequence element Vm
.
+ @param a The parameter a
of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm
.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal
.
+ @return The value λ = s k / n
computed to
+ c
bits of accuracy.
+
+
+ Computes the τ
-adic NAF (non-adjacent form) of an
+ element λ
of Z[τ]
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return The τ
-adic NAF of λ
.
+
+
+ Applies the operation τ()
to an
+ AbstractF2mPoint
.
+ @param p The AbstractF2mPoint to which τ()
is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ
of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ
.
+ The curve must be a Koblitz curve, i.e. a
Equals
+ 0
or 1
and b
Equals
+ 1
.
+ @return μ
of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1
and
+ Uk
or Vk-1
and
+ Vk
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1
and
+ Vk
, otherwise Uk-1
and
+ Uk
.
+ @return An array with 2 elements, containing Uk-1
+ and Uk
or Vk-1
+ and Vk
.
+
+
+ Computes the auxiliary value tw
. If the width is
+ 4, then for mu = 1
, tw = 6
and for
+ mu = -1
, tw = 10
+ @param mu The parameter μ
of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0
and
+ s1
used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0
and s1
.
+ @throws ArgumentException if curve
is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1)
.
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a
of the elliptic curve.
+ @param s The auxiliary values s0
and
+ s1
.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger
using the reduced τ
-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger
by which to Multiply p
.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the τ
-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the τ
-adic NAF (TNAF) method, given the TNAF
+ of λ
.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ
..
+ @return λ * p
+
+
+ Computes the [τ]
-adic window NAF of an element
+ λ
of Z[τ]
.
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
of which to compute the
+ [τ]
-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw
.
+ @param alpha The αu
's for the window width.
+ @return The [τ]
-adic window NAF of
+ λ
.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint
for which to do the precomputation.
+ @param a The parameter a
of the elliptic curve.
+ @return The precomputation array for p
.
+
+
+ Class representing an element of Z[τ]
. Let
+ λ
be an element of Z[τ]
. Then
+ λ
is given as λ = u + vτ
. The
+ components u
and v
may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ
.
+
+
+ The "τ
-adic" part of λ
.
+
+
+ Constructor for an element λ
of
+ Z[τ]
.
+ @param u The "real" part of λ
.
+ @param v The "τ
-adic" part of
+ λ
.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly
+ faster) implementations, and for very small scalars. CAUTION: This implementation is NOT
+ constant-time in any way. It is only intended to be used for diagnostics.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP
.
+
+
+ Base class for an elliptic curve.
+
+
+ Compute a PreCompInfo
for a point on this curve, under a given name. Used by
+ ECMultiplier
s to save the precomputation for this ECPoint
for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint
to store precomputations for.
+ @param name
+ A String
used to index precomputations of different types.
+ @param callback
+ Called to calculate the PreCompInfo
.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Create a cache-safe lookup table for the specified sequence of points. All the points MUST
+ belong to this ECCurve
instance, and MUST already be normalized.
+
+
+ Sets the default ECMultiplier
, unless already set.
+
+ We avoid locking for performance reasons, so there is no uniqueness guarantee.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp
(X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ Solves a quadratic equation z2 + z = beta
(X9.62
+ D.1.6) The other solution is z + 1
.
+
+ @param beta
+ The value to solve the quadratic equation for.
+ @return the solution for z2 + z = beta
or
+ null
if no solution exists.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b
.
+
+
+ The exponent m
of F2m
.
+
+
+ TPB: The integer k
where xm +
+ xk + 1
represents the reduction polynomial
+ f(z)
.
+ PPB: The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ TPB: Always set to 0
+ PPB: The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ TPB: Always set to 0
+ PPB: The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k The integer k
where xm +
+ xk + 1
represents the reduction
+ polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k The integer k
where xm +
+ xk + 1
represents the reduction
+ polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n
.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n
.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m
in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m
of F2m
.
+
+
+ The LongArray
holding the bits.
+
+
+ Checks, if the ECFieldElements a
and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a
and b
+ are not elements of the same field
+ F2m
(having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m
, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m
of the reduction polynomial
+ f(z)
.
+
+
+ @return Tpb: The integer k
where xm +
+ xk + 1
represents the reduction polynomial
+ f(z)
.
+ Ppb: The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ base class for points on elliptic curves.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint
by the given number.
+ @param k The multiplicator.
+ @return k * this
.
+
+
+ Elliptic curve points over Fp
+
+
+ Elliptic curve points over F2m
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoint
s.
+
+
+ Multiplies the ECPoint p
by k
, i.e.
+ p
is added k
times to itself.
+ @param p The ECPoint
to be multiplied.
+ @param k The factor by which p
is multiplied.
+ @return p
multiplied by k
.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Lookup table for the precomputed ECPoint
s used for a fixed point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier
.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this
by an integer k
using the
+ Window NAF method.
+ @param k The integer by which this
is multiplied.
+ @return A new ECPoint
which equals this
+ multiplied by k
.
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoint
s used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoint
s used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint
representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w
of the Window NAF. The width is
+ defined as the minimal number w
, such that for any
+ w
consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+
, where the ki
denote the elements of the
+ returned byte[]
.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ
-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k
using the reduced τ
-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k
.
+ @return p
multiplied by k
.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
using
+ the τ
-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ
of
+ Z[τ]
of which to compute the
+ [τ]
-adic NAF.
+ @return p
multiplied by λ
.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the window τ
-adic NAF (TNAF) method, given the
+ WTNAF of λ
.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ
..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ
-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoint
s used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}
.
+
+
+
+ A low-level implementation of the Ed25519, Ed25519ctx, and Ed25519ph instantiations of the Edwards-Curve Digital
+ Signature Algorithm specified in RFC 8032.
+
+
+ The implementation strategy is mostly drawn from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography", notably the "signed multi-comb" algorithm (for
+ scalar multiplication by a fixed point), the "half Niels coordinates" (for precomputed points), and the
+ "extensible coordinates" (for accumulators). Standard
+ extended coordinates are used during
+ precomputations, needing only a single extra point addition formula.
+
+
+
+
+ A low-level implementation of the Ed448 and Ed448ph instantiations of the Edwards-Curve Digital Signature
+ Algorithm specified in RFC 8032.
+
+
+ The implementation uses the "signed mult-comb" algorithm (for scalar multiplication by a fixed point) from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography". Standard
+ projective coordinates are used
+ for most point arithmetic.
+
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+
+ Enhanced Miller-Rabin Probabilistic Primality Test
+
+
+ Used to return the output from the
+ Shawe-Taylor Random_Prime Routine
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine.
+ Construct a provable prime number using a hash function.
+ The instance to use (as "Hash()"). Cannot be null.
+ The length (in bits) of the prime to be generated. Must be at least 2.
+ The seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ An instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test.
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an alternative to
+ that provides more information about a
+ composite candidate, which may be useful when generating or validating RSA moduli.
+
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+ An instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+ The instance to test for division by small factors.
+ true if the candidate is found to have any small factors, false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test.
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+
+ false if any witness to compositeness is found amongst the chosen bases (so
+ is definitely NOT prime), or else true (indicating primality with some
+ probability dependent on the number of iterations that were performed).
+
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+ The instance to test for primality.
+ The base value to use for this iteration.
+ false if is a witness to compositeness (so
+ is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ Wrapper for the RevokedInfo object
+
+
+ Return the revocation reason, if there is one.
+ This field is optional; test for it with first.
+ The revocation reason, if available.
+ If no revocation reason is available.
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WARNING: If is null, no integrity check is performed.
+
+
+
+ Load without any integrity check.
+
+
+
+
+
+
+ JksTrustedCertEntry is a internal container for the certificate entry.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ Returns X509Extensions if the Extensions Request attribute can be found and returns the extensions block.
+
+ X509Extensions block or null if one cannot be found.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ A holding class for a PKCS#8 encrypted private key info object that allows for its decryption.
+
+
+
+
+ Base constructor from a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A PKCS#8 EncryptedPrivateKeyInfo object.
+
+
+
+ Base constructor from a BER encoding of a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A BER encoding of a PKCS#8 EncryptedPrivateKeyInfo objects.
+
+
+
+ Returns the underlying ASN.1 structure inside this object.
+
+ Return the EncryptedPrivateKeyInfo structure in this object.
+
+
+
+ Returns a copy of the encrypted data in this structure.
+
+ Return a copy of the encrypted data in this object.
+
+
+
+ Return a binary ASN.1 encoding of the EncryptedPrivateKeyInfo structure in this object.
+
+ A byte array containing the encoded object.
+
+
+
+ Get a decryptor from the passed in provider and decrypt the encrypted private key info, returning the result.
+
+ A provider to query for decryptors for the object.
+ The decrypted private key info structure.
+
+
+
+ Create the encrypted private key info using the passed in encryptor.
+
+ The encryptor to use.
+ An encrypted private key info containing the original private key info.
+
+
+ Base exception for PKCS related issues.
+
+
+ Base exception for parsing related issues in the PKCS namespace.
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+
+ @param privateKey the key to be encoded into the info object.
+ @param attributes the set of attributes to be included.
+ @return the appropriate PrivateKeyInfo
+ @throws java.io.IOException on an error encoding the key
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set
of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker
supports or
+ null
if no extensions are supported.
+
+ Each element of the set is a String
representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker
might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set
of X.509 extension OIDs (in
+ String
format) supported by this
+ PkixAttrCertChecker
, or null
if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection
of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params
must be an instance of
+ ExtendedPkixParameters
.
+
+ The target constraints in the params
must be an
+ X509AttrCertStoreSelector
with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult
of the result of
+ validating the certPath
.
+ @throws InvalidAlgorithmParameterException if params
is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters
.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters
, PKIXParameters
,
+ and ExtendedPKIXParameters
instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters
instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet
is null
an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters
and
+ PKIXBuilderParameters
.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters
object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters
object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ * Initializes the internal state of this PKIXCertPathChecker
.
+ *
+ * The forward
flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker
must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check
method. If true
,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false
, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker
is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker
to perform its
+ checks when certificates are presented to the check
method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true
if forward checking is supported,
+ false
otherwise
+
+
+ * Returns an immutable Set
of X.509 certificate extensions
+ * that this PKIXCertPathChecker
supports (i.e. recognizes,
+ * is able to process), or null
if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String
representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set
of X.509 extension OIDs (in
+ * String
format) supported by this
+ * PKIXCertPathChecker
, or null
if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init
method.
+
+ @param cert
+ the Certificate
to be checked
+ @param unresolvedCritExts
+ a Collection
of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator
implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi
)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator
class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi
instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator
object.
+
+ However, implementations of CertPathValidatorSpi
may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi
instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException
provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException
may also include the index of
+ the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #Index Index} property to retrieve
+ this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException
with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null
if none)
+ the cause (or null
if none)
+ the index of the certificate in the certification path that *
+
+
+ eturns the index of the certificate in the certification path that caused the exception to be
+ thrown.
+
+ Note that the list of certificates in a is zero based. If no index has been set,
+ -1 is returned.
+
+ The index that has been set, or -1 if none has been set.
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor
object if found or
+ null
if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal
.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey
. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index
extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector
.
+
+ The issuerPrincipals
are a collection with a single
+ X500Principal
for X509Certificate
s. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal
.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals
does not
+ contain only X500Principal
s.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate
or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set
of X509CRL
s with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set
of X509CRL
s with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection
object containing the issuer
+ X509Certificate
s. Never null
.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null
.
+
+
+
+ The most restricting part from email1
and
+ email2
is added to the intersection intersect
.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ The common part of email1
and email2
is
+ added to the union union
. If email1
and
+ email2
have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ Checks if the IP ip
is included in the excluded ISet
+ excluded
.
+
+ @param excluded A Set
of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP ip
is included in the permitted ISet
+ permitted
.
+
+ @param permitted A Set
of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP address ip
is constrained by
+ constraint
.
+
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @param ip The IP address.
+ @return true
if constrained, false
+ otherwise.
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted
with ip
.
+
+ @param permitted A Set
of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set
of permitted IP ranges intersected with
+ ip
.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set
with the single IP address with its subnet
+ mask as a byte array or an empty Set
.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip
.
+
+ @param excluded A Set
of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set
of excluded IP ranges unified with
+ ip
as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set
with the union of both addresses.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1
with ip2
. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1
and
+ ip2
.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1
and ip2
.
+
+
+
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+
+
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name
is
+ excluded.
+
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector
. If null
, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector
returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector
specifying the constraints on the
+ target certificate or attribute certificate (or null
)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector
. If null
, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector
specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector
specifying the constraints on
+ the target certificate or attribute certificate (or
+ null
)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null
, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null
)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null
)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set
, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set
of initial policy OIDs in String
+ format, or an empty Set
(implying any policy is
+ acceptable). Never returns null
.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set
of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set
(or
+ null
).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null
)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List
of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker
specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker
should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator
or CertPathBuilder
. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator
or CertPathBuilder
for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator
or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null
)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker
to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker
is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker
to add to the list of
+ checks. If null
, the checker is ignored (not added to list).
+
+
+ Method to support Clone()
under J2ME.
+ super.Clone()
does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters
they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false
.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true
if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true
if additional stores are used.
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet
consists of TrustAnchor
s.
+
+ The returned ISet
is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers
must be a ISet
of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null
.
+ @throws ClassCastException if an element of stores
is not
+ a TrustAnchor
.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet
is immutable and contains
+ String
s with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet
must contain String
s with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes
is not a
+ String
.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet
is immutable and contains
+ String
s with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null
.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet
must contain String
s with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes
is not a
+ String
.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null
.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet
must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null
.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker
.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true
if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+
+
+
+
+
+
+
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert
.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert
.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert
.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert
.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set
with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert
.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert
.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert
.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert
.
+ @param workingPublicKey The public key of the issuer certificate sign
.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert
.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert
.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor
where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor
.
+
+ a formatted string describing the TrustAnchor
+
+
+ Generate key pairs
+ - Secret key : (h0, h1, sigma)
+ - Public key: h
+ * @param h0 h0
+ * @param h1 h1
+ * @param sigma sigma
+ * @param h h
+ * @param random Secure Random
+ *
+
+
+ KEM Encapsulation
+ - Input: h
+ - Output: (c0,c1,k)
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ * @param h public key
+ * @param random Secure Random
+ *
+
+
+ KEM Decapsulation
+ - Input: (h0, h1, sigma), (c0, c1)
+ - Output: k
+ * @param h0 private key
+ * @param h1 private key
+ * @param sigma private key
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ *
+
+
+ Constructor.
+
+ @param h0 h0
+ @param h1 h1
+ @param sigma random bytes sigma
+
+
+ Constructor.
+
+ @param publicKey byte
+
+
+ Karatsuba multiplication of a and b, Implementation inspired from the NTL library.
+
+ \param[out] o Polynomial
+ \param[in] a Polynomial
+ \param[in] b Polynomial
+ \param[in] size Length of polynomial
+ \param[in] stack Length of polynomial
+
+
+ @brief Compute o(x) = a(x) mod \f$ X^n - 1\f$
+
+ This function computes the modular reduction of the polynomial a(x)
+
+ @param[in] a Pointer to the polynomial a(x)
+ @param[out] o Pointer to the result
+
+
+ Generate key pairs
+ - Secret key : (x,y)
+ - Public key: (h,s)
+ @param pk output pk = (publicSeed||s)
+
+
+
+
+ HQC Encapsulation
+ - Input: pk, seed
+ - Output: c = (u,v,d), K
+
+ @param u u
+ @param v v
+ @param d d
+ @param K session key
+ @param pk public key
+ @param seed seed
+
+
+
+ HQC Decapsulation
+ - Input: ct, sk
+ - Output: ss
+
+ @param ss session key
+ @param ct ciphertext
+ @param sk secret key
+
+
+
+ HQC Encryption
+ - Input: (h,s, m)
+ - Output: (u,v) = c
+
+ @param h public key
+ @param s public key
+ @param m message
+ @param u ciphertext
+ @param v ciphertext
+
+
+
+ Base interface for a PQC signing algorithm.
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return the signature of the message
+
+
+ verify the message message against the signature value.
+
+ @param message the message that was supposed to have been signed.
+ @param signature the signature of the message
+
+
+ Type to assist in build LMS messages.
+
+
+ Increments an HSS private key without doing any work on it.
+ HSS private keys are automatically incremented when when used to create signatures.
+
+ The HSS private key is ranged tested before this incrementation is applied.
+ LMS keys will be replaced as required.
+
+ @param keyPair
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters array of LMS parameters, one per level in the hierarchy (up to 8 levels).
+ @param random the random byte source.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+ Reset to index will ensure that all LMS keys are correct for a given HSS index value.
+ Normally LMS keys updated in sync with their parent HSS key but in cases of sharding
+ the normal monotonic updating does not apply and the state of the LMS keys needs to be
+ reset to match the current HSS index.
+
+
+ @param src byte[], InputStream or HSSSignature
+ @param L The HSS depth, available from public key.
+ @return An HSSSignature instance.
+ @throws IOException
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters LMS parameter set to use.
+ @param random the random byte source.
+
+
+ Return the key index (the q value).
+
+ @return private key index number.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+
+ Encapsulated secret encapsulated by NTRU.
+
+
+
+
+ NTRU secret encapsulation extractor.
+
+
+
+
+ Encapsulate a secret using NTRU. Returns an as encapsulation.
+
+
+
+ NTRU website
+
+
+
+ NTRU sampling.
+
+ NTRU specification section 1.10
+
+
+
+
+ Sample_fg
+
+ random byte array
+ a pair of polynomial f and g
+
+
+
+
+ Sample_rm
+
+ random byte array
+ a pair of polynomial r and m
+
+
+
+
+ Ternary
+
+ random byte array
+ A ternary polynomial
+
+
+
+ Fixed_Type
+
+ random byte array
+ a ternary polynomial with exactly q/16 − 1 coefficients equal to 1 and q/16 − 1 coefficient equal to −1
+
+
+
+ Ternary_Plus
+
+ random byte array
+ a ternary polynomial that satisfies the non-negative correlation property
+
+
+
+ An OW-CPA secure deterministic public key encryption scheme (DPKE).
+
+
+
+
+ Generate a DPKE key pair.
+
+ a random byte array
+ DPKE key pair
+
+
+
+ DPKE encryption.
+
+
+
+
+ DPKE ciphertext
+
+
+
+ DPKE decryption.
+
+
+
+ an instance of containing packed_rm an fail flag
+
+
+ Largest serialized public key size, in bytes
+
+
+ Largest signature size, in bytes
+
+
+ parameters
+
+
+
+
+
+ Compressed Dlogs
+
+
+ DLOG
+
+
+
+
+
+ Interprets m as SPX_FORS_HEIGHT-bit unsigned integers.
+ Assumes m contains at least SPX_FORS_HEIGHT * SPX_FORS_TREES bits.
+ Assumes indices has space for SPX_FORS_TREES integers.
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Return the SPHINCS+ parameters that map to the passed in parameter ID.
+
+ @param id the oid of interest.
+ @return the parameter set.
+
+
+ Return the OID that maps to the passed in SPHINCS+ parameters.
+
+ @param params the parameters of interest.
+ @return the OID for the parameter set.
+
+
+ SPHINCS+ signer.
+
+ This version is based on the 3rd submission with deference to the updated reference
+ implementation on github as at November 9th 2021. This version includes the changes
+ for the countermeasure for the long-message second preimage attack - see
+ "https://github.com/sphincs/sphincsplus/commit/61cd2695c6f984b4f4d6ed675378ed9a486cbede"
+ for further details.
+
+
+
+ Base constructor.
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding.
+ the PrivateKeyInfo encoding
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding read from a stream
+ the stream to read the PrivateKeyInfo encoding from
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from the passed in PKCS8 PrivateKeyInfo object.
+ the PrivateKeyInfo object containing the key material
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key.
+ the key to be encoded into the info object.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+ the key to be encoded into the info object.
+ the set of attributes to be included.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding
+ the SubjectPublicKeyInfo encoding
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding read from a stream
+ the stream to read the SubjectPublicKeyInfo encoding from
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ default parameters that might be needed.
+ the appropriate key parameter
+ on an error decoding the key
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+ Base class for a TLS client.
+
+
+
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ The default implementation calls this to get the connection_id extension
+ the client will send. As future communication doesn't include the connection IDs length, this should either
+ be fixed-length or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+
+
+
+
+
+
+ an of (or null).
+
+
+ The default implementation calls this to determine which named
+ groups to include in the supported_groups extension for the ClientHello.
+ The named group roles for which there should
+ be at least one supported group. By default this is inferred from the offered cipher suites and signature
+ algorithms.
+ an of . See for group constants.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for supporting a TLS key exchange implementation.
+
+
+ Base class for supporting a TLS key exchange factory implementation.
+
+
+ Base class for a TLS client or server.
+
+
+ Get the values that are supported by this peer.
+
+ WARNING: Mixing DTLS and TLS versions in the returned array is currently NOT supported. Use a separate
+ (sub-)class for each case.
+
+ an array of supported values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for a TLS server.
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ This method will be called if a connection_id extension was sent by the client.
+ If the return value is non-null, the server will send this connection ID to the client to use in future packets.
+ As future communication doesn't include the connection IDs length, this should either be fixed-length
+ or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+ RFC 5246 7.2.
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection.
+
+ Note that as of TLS 1.1, failure to properly close a connection no longer requires that a session not be
+ resumed. This is a change from TLS 1.0 ("The session becomes unresumable if any connection is terminated
+ without proper close_notify messages with level equal to warning.") to conform with widespread
+ implementation practice.
+
+
+
+ An inappropriate message was received.
+
+ This alert is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ This alert is returned if a record is received with an incorrect MAC.
+
+ This alert also MUST be returned if an alert is sent because a TLSCiphertext decrypted in an invalid way:
+ either it wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks against the CBC
+ mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes.
+
+ This message is always fatal and should never be observed in communication between proper implementations
+ (except when messages were corrupted in the network).
+
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length).
+
+ This message is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to negotiate
+ an acceptable set of security parameters given the options available.
+
+ This is a fatal error.
+
+
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it unacceptable.
+
+
+
+ A field in the handshake was out of range or inconsistent with other fields.
+
+ This message is always fatal.
+
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted CA.
+
+ This message is always fatal.
+
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not to
+ proceed with negotiation.
+
+ This message is always fatal.
+
+
+
+ A message could not be decoded because some field was out of the specified range or the length of
+ the message was incorrect.
+
+ This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a signature
+ or validate a Finished message.
+
+ This message is always fatal.
+
+
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+
+
+ (For example, old protocol versions might be avoided for security reasons.) This message is always fatal.
+
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client.
+
+ This message is always fatal.
+
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue.
+
+ This message is always fatal.
+
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure.
+
+ If the user cancels an operation after the handshake is complete, just closing the connection by sending a
+ close_notify is more appropriate. This alert should be followed by a close_notify. This message is
+ generally a warning.
+
+
+
+ Sent by the client in response to a hello request or by the server in response to a client hello
+ after initial handshaking.
+
+ Either of these would normally lead to renegotiation; when that is not appropriate, the recipient should
+ respond with this alert. At that point, the original requester can decide whether to proceed with the
+ connection. One case where this would be appropriate is where a server has spawned a process to satisfy a
+ request; the process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This message is always a
+ warning.
+
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did not
+ put in the corresponding client hello.
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL supplied
+ by the client(see Section 3.3).
+
+ This message MAY be fatal - for example if client authentication is required by the server for the
+ handshake to continue and the server is unable to retrieve the certificate chain, it may send a fatal
+ alert.
+
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not recognize
+ the server name.
+
+ This message MAY be fatal.
+
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see Section 3.6
+ ).
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash.
+
+ This message is always fatal.
+
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an "unknown_psk_identity"
+ alert message.
+
+
+ In the event that the server supports no protocols that the client advertises, then the server
+ SHALL respond with a fatal "no_application_protocol" alert.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version, the server MUST
+ respond with a fatal inappropriate_fallback alert[..].
+
+
+ Sent by endpoints that receive a handshake message not containing an extension that is mandatory
+ to send for the offered TLS version or other negotiated parameters.
+
+
+ Sent by servers when a client certificate is desired but none was provided by the client.
+
+
+
+ RFC 5246 7.2
+
+
+ A basic PSK Identity holder.
+
+
+ A basic SRP Identity holder.
+
+
+ A queue for bytes. This file could be more optimized.
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided .
+ The to copy the bytes to.
+ How many bytes to copy.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a over some bytes at the beginning of the data.
+
+ How many bytes will be readable.
+ A over the data.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Remove data from the buffer.
+ The buffer where the removed data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ OutputStream based on a ByteQueue implementation.
+
+
+ Implementation of the RFC 3546 3.3. CertChainType.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+
+
+ an array of representing a certificate chain.
+
+
+ true if this certificate chain contains no certificates, or false otherwise.
+
+
+
+ Encode this to a , and optionally calculate the
+ "end point hash" (per RFC 5929's tls-server-end-point binding).
+ the of the current connection.
+ the to encode to.
+ the to write the "end point hash" to (or null).
+
+
+
+
+ Parse a from a .
+ the to apply during parsing.
+ the of the current connection.
+ the to parse from.
+ the to write the "end point hash" to (or null).
+
+ a object.
+
+
+
+ RFC 8879
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>;
+ } CertificateRequest;
+
+ Updated for RFC 5246:
+
+ struct {
+ ClientCertificateType certificate_types <1..2 ^ 8 - 1>;
+ SignatureAndHashAlgorithm supported_signature_algorithms <2 ^ 16 - 1>;
+ DistinguishedName certificate_authorities <0..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+ Revised for RFC 8446:
+
+ struct {
+ opaque certificate_request_context <0..2 ^ 8 - 1>;
+ Extension extensions <2..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+
+
+
+
+
+
+
+
+ see for valid constants.
+
+ an of .
+
+
+
+
+
+ an array of certificate types
+
+
+
+ an of (or null before TLS 1.2).
+
+
+
+ an optional of . May be non-null from
+ TLS 1.3 onwards.
+
+
+ an of .
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ an of (possibly null) .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ Implementation of the RFC 3546 3.6. CertificateStatusRequest.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Implementation of the RFC 6961 2.2. CertificateStatusRequestItemV2.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6091
+
+
+ RFC 3546 3.3
+
+
+ see for valid constants.
+ an of .
+
+
+
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ a value.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 5056
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g.serialization).
+
+
+
+ RFC 2246 A.5
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ for DTLS this should be non-null; the input is copied to this
+ , minus the cookie field.
+ a object.
+
+
+
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ RFC 2246 6.1
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values(e.g.serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+ Carrier class for Diffie-Hellman group parameters.
+
+
+ Base constructor with the prime factor of (p - 1).
+ the prime modulus.
+ specifies the prime factor of (p - 1).
+ the base generator.
+
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ Base class for a TlsCrypto implementation that provides some needed methods from elsewhere in the impl
+ package.
+
+
+ Base class for a TlsSecret implementation which captures common code and fields.
+
+
+ Base constructor.
+ the byte[] making up the secret value.
+
+
+
+
+
+ Credentialed class generating agreed secrets from a peer's public key for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class decrypting RSA encrypted secrets sent from a peer for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class for generating signatures based on the use of primitives from the BC light-weight API.
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104).
+
+ The difference is that padding is concatenated versus XORed with the key, e.g:
+ H(K + opad, H(K + ipad, text))
+
+
+
+ Base constructor for one of the standard digest algorithms for which the byteLength is known.
+
+
+ Behaviour is undefined for digests other than MD5 or SHA1.
+
+ the digest.
+
+
+ Reset the mac generator.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class for providing cryptographic services for TLS based on implementations in the BC light-weight API.
+
+ This class provides default implementations for everything. If you need to customise it, extend the class
+ and override the appropriate methods.
+
+
+
+ Support class for ephemeral Diffie-Hellman using the BC light-weight library.
+
+
+ BC light-weight support class for Diffie-Hellman key pair generation and key agreement over a
+ specified Diffie-Hellman configuration.
+
+
+
+
+
+
+
+
+ Implementation class for generation of the raw DSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw DSA signature type using the BC light-weight API.
+
+
+
+ BC light-weight base class for the signers implementing the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ BC light-weight base class for the verifiers supporting the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ Support class for ephemeral Elliptic Curve Diffie-Hellman using the BC light-weight library.
+
+
+ EC domain class for generating key pairs and performing key agreement.
+
+
+
+
+
+ Implementation class for generation of ECDSA signatures in TLS 1.3+ using the BC light-weight API.
+
+
+
+ Implementation class for generation of the raw ECDSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw ECDSA signature type using the BC light-weight
+ API.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Operator supporting the generation of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the verification of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the generation of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ Operator supporting the verification of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ BC light-weight support class for handling TLS secrets and deriving key material and other secrets
+ from them.
+
+
+ Support class for X25519 using the BC light-weight library.
+
+
+ Support class for X448 using the BC light-weight library.
+
+
+ A generic TLS 1.2 AEAD cipher.
+
+
+
+
+
+ Base interface for services supporting AEAD encryption/decryption.
+
+
+ Set the key to be used by the AEAD cipher implementation supporting this service.
+ array holding the AEAD cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for the AEAD operator.
+ the nonce.
+ MAC size in bytes.
+ any additional data to be included in the MAC calculation.
+ if the parameters are inappropriate.
+
+
+ Return the maximum size of the output for input of inputLength bytes.
+ the length (in bytes) of the proposed input.
+ the maximum size of the output.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ A generic TLS 1.0-1.2 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+ Interface for block cipher services.
+
+
+ Set the key to be used by the block cipher implementation supporting this service.
+ array holding the block cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for operator.
+ array holding the initialization vector (IV).
+ offset into the array the IV starts at.
+ length of the IV in the array.
+ if the parameters are inappropriate.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ Return the blocksize (in bytes) of the underlying block cipher.
+ the cipher's blocksize.
+
+
+ Useful utility methods.
+
+
+ The NULL cipher.
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+ Generate a new instance of a TlsMac.
+ the TLS client context specific crypto parameters.
+ The MAC to use.
+
+
+ Base interface for a generic TLS MAC implementation for use with a bulk cipher.
+
+
+ Return the output length (in bytes) of this MAC.
+ The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ A new byte array containing the MAC value.
+
+
+ Constant time calculation of the MAC for some given data with a given expected length.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ The expected length of the full message.
+ Random data for padding out the MAC calculation if required.
+ A new byte array containing the MAC value.
+
+
+ Carrier class for SRP-6 group parameters.
+
+
+ Base constructor.
+ the n value.
+ the g value.
+
+
+ A selection of standard groups for SRP-6.
+
+
+
+
+
+
+
+
+ Base interface for ephemeral key agreement calculator.
+
+
+ Generate an ephemeral key pair, returning the encoding of the public key.
+ a byte encoding of the public key.
+
+
+
+ Pass in the public key for the peer to the agreement calculator.
+ a byte encoding of the peer public key.
+
+
+
+ Calculate the agreed secret based on the calculator's current state.
+ the calculated secret.
+
+
+
+ Interface providing the functional representation of a single X.509 certificate.
+
+
+ Return an encryptor based on the public key in this certificate.
+
+ a based on this certificate's public key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the OID of this certificate's 'signatureAlgorithm', as a string.
+
+
+
+
+
+
+
+
+
+
+ true if (and only if) this certificate can be used to verify the given signature algorithm.
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS bulk cipher.
+
+
+ Return the maximum input size for a ciphertext given a maximum output size for the plaintext of
+ plaintextLimit bytes.
+ the maximum output size for the plaintext.
+ the maximum input size of the ciphertext for plaintextlimit bytes of output.
+
+
+ Return the maximum output size for a ciphertext given an actual input plaintext size of
+ plaintextLength bytes and a maximum input plaintext size of plaintextLimit bytes.
+ the actual input size for the plaintext.
+ the maximum input size for the plaintext.
+ the maximum output size of the ciphertext for plaintextlimit bytes of input.
+
+
+ Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.
+ the maximum number of bytes of ciphertext.
+ the maximum size of the plaintext for ciphertextlimit bytes of input.
+
+
+ Encode the passed in plaintext using the current bulk cipher.
+ sequence number of the message represented by plaintext.
+ content type of the message represented by plaintext.
+ used for the record.
+ extra bytes to allocate at start of returned byte array.
+ array holding input plaintext to the cipher.
+ offset into input array the plaintext starts at.
+ length of the plaintext in the array.
+ A containing the result of encoding (after 'headerAllocation' unused
+ bytes).
+
+
+
+ Decode the passed in ciphertext using the current bulk cipher.
+ sequence number of the message represented by ciphertext.
+ content type used in the record for this message.
+ used for the record.
+ array holding input ciphertext to the cipher.
+ offset into input array the ciphertext starts at.
+ length of the ciphertext in the array.
+ A containing the result of decoding.
+
+
+
+
+
+
+
+
+
+ Service and object creation interface for the primitive types and services that are associated with
+ cryptography in the API.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS 1.2.
+ A list of
+ values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS versions older than 1.2.
+ An array of values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto can support the passed in hash algorithm.
+ the algorithm of interest.
+ true if cryptoHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ the algorithm of interest.
+ true if cryptoSignatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support DH key agreement.
+ true if this instance can support DH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support ECDH key agreement.
+ true if this instance can support ECDH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in block/stream encryption algorithm.
+
+ the algorithm of interest.
+ true if encryptionAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support HKDF with the passed in hash algorithm.
+ the algorithm of interest.
+ true if HKDF is supported with cryptoHashAlgorithm, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in MAC algorithm.
+ the algorithm of interest.
+ true if macAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto supports the passed in named group
+ value.
+ true if this instance supports the passed in named group value.
+
+
+
+ Return true if this TlsCrypto can support RSA encryption/decryption.
+ true if this instance can support RSA encryption/decryption, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ true if signatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm.
+ the algorithm of interest.
+ true if sigAndHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature scheme.
+ the scheme of interest.
+ true if signatureScheme is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support SRP authentication.
+ true if this instance can support SRP authentication, false otherwise.
+
+
+ Create a TlsSecret object based on provided data.
+ the data to base the TlsSecret on.
+ a TlsSecret based on the provided data.
+
+
+ Create a TlsSecret object containing a randomly-generated RSA PreMasterSecret
+ the client version to place in the first 2 bytes
+ a TlsSecret containing the PreMasterSecret.
+
+
+ Return the primary (safest) SecureRandom for this crypto.
+ a SecureRandom suitable for key generation.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of an X.509 certificate.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of a certificate.
+ Certificate type as per IANA TLS Certificate Types registry.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a cipher for the specified encryption and MAC algorithms.
+
+ See enumeration classes , for appropriate
+ argument values.
+
+ context specific parameters.
+ the encryption algorithm to be employed by the cipher.
+ the MAC algorithm to be employed by the cipher.
+ a implementing the encryption and MAC algorithms.
+
+
+
+ Create a domain object supporting the domain parameters described in dhConfig.
+ the config describing the DH parameters to use.
+ a TlsDHDomain supporting the parameters in dhConfig.
+
+
+ Create a domain object supporting the domain parameters described in ecConfig.
+ the config describing the EC parameters to use.
+ a TlsECDomain supporting the parameters in ecConfig.
+
+
+ Adopt the passed in secret, creating a new copy of it.
+ the secret to make a copy of.
+ a TlsSecret based on the original secret.
+
+
+ Create a suitable hash for the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the hash needs to implement.
+ a .
+
+
+ Create a suitable HMAC for the MAC algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the MAC algorithm the HMAC needs to match.
+ a .
+
+
+ Create a suitable HMAC using the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the HMAC should use.
+ a .
+
+
+ Create a nonce generator.
+
+ Each call should construct a new generator, and the generator should be returned from this call only after
+ automatically seeding from this 's entropy source, and from the provided additional
+ seed material. The output of each returned generator must be completely independent of the others.
+
+ context-specific seed material
+ a .
+
+
+ Create an SRP-6 client.
+ client config.
+ an initialised SRP6 client object.
+
+
+ Create an SRP-6 server.
+ server config.
+ the SRP6 verifier value.
+ an initialised SRP6 server object.
+
+
+ Create an SRP-6 verifier generator.
+ generator config.
+ an initialized SRP6 verifier generator.
+
+
+ Setup an initial "secret" for a chain of HKDF calls (RFC 5869), containing a string of HashLen
+ zeroes.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+
+
+ Basic exception class for crypto services to pass back a cause.
+
+
+ Carrier class for context-related parameters needed for creating secrets and ciphers.
+
+
+ Base constructor.
+ the context for this parameters object.
+
+
+
+
+
+ Basic config for Diffie-Hellman.
+
+
+ Domain interface to service factory for creating Diffie-Hellman operators.
+
+
+ Return an agreement operator suitable for ephemeral Diffie-Hellman.
+ a key agreement operator.
+
+
+ Carrier class for Elliptic Curve parameter configuration.
+
+
+ Return the group used.
+ the named group used.
+
+
+ Domain interface to service factory for creating Elliptic-Curve (EC) based operators.
+
+
+ Return an agreement operator suitable for ephemeral EC Diffie-Hellman.
+ a key agreement operator.
+
+
+ Base interface for an encryptor.
+
+
+ Encrypt data from the passed in input array.
+ byte array containing the input data.
+ offset into input where the data starts.
+ the length of the data to encrypt.
+ the encrypted data.
+
+
+
+ Interface for message digest, or hash, services.
+
+
+ Update the hash with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated hash for any input passed in.
+ the hash value.
+
+
+ Return a clone of this hash object representing its current state.
+ a clone of the current hash.
+
+
+ Reset the hash underlying this service.
+
+
+ Interface for MAC services based on HMAC.
+
+
+ Return the internal block size for the message digest underlying this HMAC service.
+ the internal block size for the digest (in bytes).
+
+
+ Interface for MAC services.
+
+
+ Set the key to be used by the MAC implementation supporting this service.
+ array holding the MAC key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+ Update the MAC with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated MAC for any input passed in.
+ the MAC value.
+
+
+ Write the calculated MAC to an output buffer.
+ output array to write the MAC to.
+ offset into the output array to write the MAC to.
+
+
+ Return the length of the MAC generated by this service.
+ the MAC length.
+
+
+ Reset the MAC underlying this service.
+
+
+ Generate a nonce byte[] string.
+ the length, in bytes, of the nonce to generate.
+ the nonce value.
+
+
+ The cipher for TLS_NULL_WITH_NULL_NULL.
+
+
+ Interface supporting the generation of key material and other SSL/TLS secret values from PRFs.
+
+
+
+ Calculate an HMAC with this secret's data as the key.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ array containing the input data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return a new secret based on applying a PRF to this one.
+ PRF algorithm to use.
+ the label details.
+ the seed details.
+ the size (in bytes) of the secret to generate.
+ the new secret.
+
+
+ Destroy the internal state of the secret.
+
+ After this call, any attempt to use the will result in an
+ being thrown.
+
+
+
+ Return an encrypted copy of the data this secret is based on.
+ the encryptor to use for protecting the internal data.
+ an encrypted copy of this secret's internal data.
+
+
+
+ Return the internal data from this secret.
+
+ The does not keep a copy of the data. After this call, any attempt to use the
+ will result in an being thrown.
+
+ the secret's internal data.
+
+
+ RFC 5869 HKDF-Expand function, with this secret's data as the pseudo-random key ('prk').
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ optional context and application specific information (can be zero-length).
+ length of output keying material in octets.
+ output keying material (of 'length' octets).
+
+
+ RFC 5869 HKDF-Extract function, with this secret's data as the 'salt'.
+
+ The does not keep a copy of the data. After this call, any attempt to use
+ the will result in an being thrown.
+
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ input keying material.
+ a pseudo-random key (of HashLen octets).
+
+
+ Base interface for a TLS signer that works on raw message digests.
+
+
+ Generate an encoded signature based on the passed in hash.
+ the signature algorithm to use.
+ the hash calculated for the signature.
+ an encoded signature.
+ in case of an exception processing the hash.
+
+
+
+
+
+ Basic interface for an SRP-6 client implementation.
+
+
+ Generates the secret S given the server's credentials
+ The server's credentials
+ Client's verification message for the server
+ If server's credentials are invalid
+
+
+ Generates client's credentials given the client's salt, identity and password
+ The salt used in the client's verifier.
+ The user's identity (eg. username)
+ The user's password
+ Client's public value to send to server
+
+
+ Basic interface for an SRP-6 server implementation.
+
+
+ Generates the server's credentials that are to be sent to the client.
+ The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+
+ The client's credentials.
+ A shared secret .
+ If client's credentials are invalid.
+
+
+ Base interface for a generator for SRP-6 verifiers.
+
+
+ Creates a new SRP-6 verifier value.
+ The salt to use, generally should be large and random
+ The user's identifying information (eg. username)
+ The user's password
+ A new verifier for use in future SRP authentication
+
+
+ Basic config for SRP.
+
+
+ Return the (N, g) values used in SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+ Set the (N, g) values used for SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS verifier that works with signatures and either raw message digests, or entire
+ messages.
+
+
+
+
+
+ Return true if the passed in signature and hash represent a real signature.
+ the signature object containing the signature to be verified.
+ the hash calculated for the signature.
+ true if signature verifies, false otherwise.
+ in case of an exception verifying signature.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object sending and receiving DTLS data.
+
+
+ Container class for generating signatures that carries the signature type, parameters, public key
+ certificate and public key's associated signer object.
+
+
+ Accept named groups and various standard DH groups with 'P' at least
+ bits.
+
+
+ Accept named groups and various standard DH groups with 'P' at least the specified number of bits.
+
+ the minimum bitlength of 'P'.
+
+
+ Accept named groups and a custom set of group parameters, subject to a minimum bitlength for 'P'.
+
+ a list of acceptable s.
+ the minimum bitlength of 'P'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+ an of acceptable .
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+
+
+
+
+
+
+ a (or null before TLS 1.2).
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ the 48-bit DTLSPlainText.sequence_number field of a received record.
+ true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+ indicates whether is now the latest confirmed
+ sequence number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The record is newer (by epoch and sequence number) than any record received previously.
+
+
+ The record includes the (valid) connection ID (RFC 9146) for this connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4492 5.4
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+ RFC 4492 5.1.2
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6520 3.
+
+
+ RFC 6066
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 8446 4.6.3
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7919
+
+
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 3546 3.6
+
+
+ an of , specifying the list of
+ trusted OCSP responders. An empty list has the special meaning that the responders are implicitly known to
+ the server - e.g., by prior arrangement.
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+
+ an of .
+
+
+ OCSP request extensions.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse an from a .
+ the to parse from.
+ an object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7301 Represents a protocol name for use with ALPN.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Connection ID we use during communication to the peer.
+
+
+ Connection ID our peer uses for communication to us.
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 3. Server Name Indication
+
+ Current implementation uses this guidance: "For backward compatibility, all future data structures associated
+ with new NameTypes MUST begin with a 16-bit length field. TLS MAY treat provided server names as opaque data
+ and pass the names and types to the application.". RFC 6066 specifies ASCII encoding for host_name (possibly
+ using A-labels for IDNs), but note that the previous version (RFC 4366) specified UTF-8 encoding (see RFC 6066
+ Appendix A). For maximum compatibility, it is recommended that client code tolerate receiving UTF-8 from the
+ peer, but only generate ASCII itself.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ an of .
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to .
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ For TLS 1.3+ usage, some signature schemes are constrained to use a particular
+ ({@link NamedGroup}. Not relevant for TLS 1.2 and below.
+
+
+ An implementation of that simulates the existence of "unknown"
+ identities to obscure the fact that there is no verifier for them.
+
+
+ Create a that implements the algorithm from RFC 5054
+ 2.5.1.3.
+
+ the defining the group that SRP is operating in.
+ the secret "seed key" referred to in RFC 5054 2.5.1.3.
+ an instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4680
+
+
+ Base interface to provide TLS authentication credentials.
+
+
+ Called by the protocol handler to report the server certificate.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the server certificate received.
+
+
+
+ Return client credentials in response to server's certificate request.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated and the details of
+ the .
+
+ details of the certificate request.
+ a object or null for no client authentication.
+
+
+
+ Return the session this client wants to resume, if any.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection, or
+ null to use a new session.
+
+
+
+ Return the external PSKs to offer in the ClientHello.
+ This will only be called when TLS 1.3 or higher is amongst the offered protocol versions.
+ an of instances, or null if none should be
+ offered.
+
+
+ (Int32 -> byte[])
+
+
+
+ If this client is offering TLS 1.3 or higher, this method may be called to determine for which
+ groups a key share should be included in the initial ClientHello.
+
+ Groups that were not included in the supported_groups extension (by will
+ be ignored. The protocol will then add a suitable key_share extension to the ClientHello extensions.
+
+ an of named group values, possibly empty or
+ null.
+
+
+
+
+
+
+ Notifies the client of the session that will be offered in ClientHello for resumption, if any.
+
+
+ This will be either the session returned from {@link #getSessionToResume()} or null if that session was
+ unusable. NOTE: the actual negotiated session_id is notified by .
+
+ The representing the resumable session to be offered for
+ this connection, or null if there is none.
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+
+
+
+
+
+
+ The protocol implementation validates that any server extensions received correspond to client
+ extensions sent.
+
+ If further processing of the server extensions is needed, it can be done in this callback. NOTE: This is
+ not called for session resumption handshakes.
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The ticket is
+ opaque to the client and clients MUST NOT examine the ticket under the assumption that it complies with e.g.
+ RFC 5077 4. "Recommended Ticket Construction".
+
+ The ticket.
+
+
+
+ Marker interface to distinguish a TLS client context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS context implementation.
+
+
+ Return true if this context is for a server, false otherwise.
+ true for a server based context, false for a client based one.
+
+
+ Used to get the resumable session, if any, used by this connection.
+
+ Only available after the handshake has successfully completed.
+
+ A representing the resumable session used by this connection, or null if
+ no resumable session available.
+
+
+
+ Used to get the session information for this connection.
+
+ Only available after the handshake has successfully completed. Use
+ to find out if the session is resumable.
+
+ A representing the session used by this connection.
+
+
+
+ Export the value of the specified channel binding.
+
+ Only available after the handshake has successfully completed.
+
+ A constant specifying the channel binding to
+ export.
+ A copy of the channel binding data as a byte[], or null if the binding could not be
+ determined.
+
+
+ Export (early data) keying material according to RFC 5705: "Keying Material Exporters for TLS", as
+ updated for TLS 1.3 (RFC 8446).
+
+ NOTE: for use in settings where an exporter is needed for 0-RTT data.
+
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS", as updated for
+ TLS 1.3 (RFC 8446) when negotiated.
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Support interface for generating a secret based on the credentials sent by a TLS peer.
+
+
+ Calculate an agreed secret based on our credentials and the public key credentials of our peer.
+
+ public key certificate of our TLS peer.
+ the agreed secret.
+ in case of an exception on generation of the secret.
+
+
+ Base interface for a class that decrypts TLS secrets.
+
+
+ Decrypt the passed in cipher text using the parameters available.
+ the parameters to use for the decryption.
+ the cipher text containing the secret.
+ a TLS secret.
+ on a parsing or decryption error.
+
+
+ Support interface for generating a signature based on our private credentials.
+
+
+ Generate a signature against the passed in hash.
+ a message digest calculated across the message the signature is to apply to.
+ an encoded signature.
+ if the hash cannot be processed, or there is an issue with the private
+ credentials.
+
+
+ Return the algorithm IDs for the signature algorithm and the associated hash it uses.
+ the full algorithm details for the signature.
+
+
+
+
+
+ Base interface for interfaces/classes carrying TLS credentials.
+
+
+ Return the certificate structure representing our identity.
+ our certificate structure.
+
+
+ (D)TLS DH_anon key exchange.
+
+
+ Interface for verifying explicit Diffie-Hellman group parameters.
+
+
+ Check whether the given DH group is acceptable for use.
+ the to check.
+ true if (and only if) the specified group is acceptable.
+
+
+ (D)TLS DH key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (D)TLS ECDH_anon key exchange (see RFC 4492).
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+ (Int32 -> byte[])
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object that can calculate a handshake hash.
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface for a key exchange factory offering a variety of specific algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This exception will be thrown (only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+ Object Identifiers associated with TLS extensions.
+
+
+ RFC 7633
+
+
+ Base interface for a (D)TLS endpoint.
+
+
+
+
+
+ Notifies the peer that a new handshake is about to begin.
+
+
+
+ Specify the timeout, in milliseconds, to use for the complete handshake process.
+
+ NOTE: Currently only respected by DTLS protocols. Negative values are not allowed. A timeout of zero means
+ an infinite timeout (i.e.the handshake will never time out).
+
+ the handshake timeout, in milliseconds.
+
+
+ Specify the time, in milliseconds, after which a handshake packet is resent.
+
+ NOTE: Currently only respected by DTLS protocols.
+
+ the handshake resend time, in milliseconds.
+
+
+
+ This option is provided as a last resort for interoperability with TLS peers that fail to correctly send a
+ close_notify alert at end of stream. Implementations SHOULD return true; caution is advised if returning
+ false without a full understanding of the implications.
+
+
+
+ This implementation supports RFC 7627 and will always negotiate the extended_master_secret
+ extension where possible. When connecting to a peer that does not offer/accept this extension, it is
+ recommended to abort the handshake.This option is provided for interoperability with legacy peers, although
+ some TLS features will be disabled in that case (see RFC 7627 5.4).
+
+ true if the handshake should be aborted when the peer does not negotiate the
+ extended_master_secret extension, or false to support legacy interoperability.
+
+
+ See RFC 5246 6.2.3.2. Controls whether block cipher encryption may randomly add extra padding
+ beyond the minimum.
+
+ Note that in configurations where this is known to be potential security risk this setting will be ignored
+ (and extended padding disabled). Extra padding is always supported when decrypting received records.
+
+ true if random extra padding should be added during block cipher encryption, or
+ false to always use the minimum amount of required padding.
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the ability to set
+ gmt_unix_time as an option only, off by default.".
+
+ NOTE: For a server that has negotiated TLS 1.3 (or later), or a client that has offered TLS 1.3 (or later),
+ this is not called and gmt_unix_time is not used.
+
+ true if the current time should be used in the gmt_unix_time field of Random, or
+ false if gmt_unix_time should contain a cryptographically random value.
+
+
+ RFC 5746 3.4/3.6. In case this is false, peers may want to terminate the handshake instead of
+ continuing; see Section 4.1/4.3 for discussion.
+
+ NOTE: TLS 1.3 forbids renegotiation, so this is never called when TLS 1.3 (or later) was negotiated.
+
+
+
+
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ Return a instance that will control the generation of heartbeats
+ locally (if permitted by the remote peer), or null to not generate heartbeats. Heartbeats are described in
+ RFC 6520.
+ an instance of .
+
+
+
+ Return the heartbeat mode applicable to the remote peer. Heartbeats are described in RFC 6520.
+
+
+ See enumeration class for appropriate return values.
+
+ the value.
+
+
+ Indicates whether a DTLS connection should ignore corrupt records (bad_record_mac) instead of
+ failing the connection.
+ Called only once at the start of a connection and applies throughout.
+ The value true to ignore corrupt DTLS records, or false to fail the connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method is called, when a change cipher spec message is received.
+ If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network.
+
+ The method will return immediately, if there is still some data left in the buffer, or block until some
+ application data has been read from the network.
+
+ The buffer where the data will be copied to.
+ The position where the data will be placed in the buffer.
+ The maximum number of bytes to read.
+ The number of bytes read.
+ If something goes wrong during reading data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Write some application data.
+
+ Fragmentation is handled internally. Usable in both blocking/non-blocking modes.
+ In blocking mode, the output will be automatically sent via the underlying transport. In non-blocking mode,
+ call to get the output bytes to send to the peer.
+ This method must not be called until after the initial handshake is complete. Attempting to call it earlier
+ will result in an .
+
+ The buffer containing application data to send.
+ The offset at which the application data begins
+ The number of bytes of application data.
+ If called before the initial handshake has completed.
+
+ If connection is already closed, or for encryption or transport errors.
+
+
+
+
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+
+
+
+
+
+
+
+ Equivalent to OfferInput(input, 0, input.Length)
.
+ The input buffer to offer.
+
+
+
+
+ Offer input from an arbitrary source.
+ Only allowed in non-blocking mode.
+ This method will decrypt and process all records that are fully available. If only part of a record is
+ available, the buffer will be retained until the remainder of the record is offered.
+ If any records containing application data were processed, the decrypted data can be obtained using
+ . If any records containing protocol data were processed, a
+ response may have been generated. You should always check to see if there is any available output after
+ calling this method by calling .
+
+ The input buffer to offer.
+ The offset within the input buffer that input begins.
+ The number of bytes of input being offered.
+ If an error occurs while decrypting or processing a record.
+
+
+ Gets the amount of received application data.
+ A call to is guaranteed to be able to return at least
+ this much data.
+ Only allowed in non-blocking mode.
+
+ The number of bytes of available application data.
+
+
+ Retrieves received application data.
+
+ Use to check how much application data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned.
+ Only allowed in non-blocking mode.
+
+ The buffer to hold the application data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+ Gets the amount of encrypted data available to be sent.
+
+ A call to is guaranteed to be able to return at least this much
+ data. Only allowed in non-blocking mode.
+
+ The number of bytes of available encrypted data.
+
+
+ Retrieves encrypted data to be sent.
+
+ Use to check how much encrypted data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned. Only allowed in non-blocking mode.
+
+ The buffer to hold the encrypted data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Make sure the 'buf' is now empty. Fail otherwise.
+ The to check.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Processor interface for a PSK identity.
+
+
+ Base interface for an object that can process a PSK identity.
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS RSA key exchange.
+
+
+ Interface describing a TLS server endpoint.
+
+
+ Return the specified session, if available.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ the ID of the session to resume.
+ A with the specified session ID, or null.
+
+
+
+ Return the external PSK to select from the ClientHello.
+
+ WARNING: EXPERIMENTAL FEATURE, UNSTABLE API
+ Note that this will only be called when TLS 1.3 or higher is amongst the offered protocol versions, and one
+ or more PSKs are actually offered.
+
+ an of instances.
+ The corresponding to the selected identity, or null to not select
+ any.
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Return server credentials to use.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated.
+
+ a object or null for anonymous key exchanges.
+
+
+
+
+ This method will be called (only) if the server included an extension of type "status_request" with empty
+ "extension_data" in the extended server hello. See RFC 3546 3.6. Certificate Status Request. If a
+ non-null is returned, it is sent to the client as a handshake message of
+ type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Called by the protocol handler to report the client certificate, only if
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See RFC 5077
+ 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket.
+
+
+
+ Server certificate carrier interface.
+
+
+ Marker interface to distinguish a TLS server context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a carrier object for a TLS session.
+
+
+ Interface for verifying SRP config needs to conform to.
+
+
+ Check whether the given SRP configuration is acceptable for use.
+ the to check.
+ true if (and only if) the specified configuration is acceptable.
+
+
+ Processor interface for an SRP identity.
+
+
+ Base interface for an object that can return login parameters from an SRP identity.
+
+
+ Lookup the corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC 5054 2.5.1.3.
+ is provided for this purpose.
+
+ the SRP identity sent by the connecting client.
+ the for the specified identity, or else 'simulated' parameters
+ if the identity is not recognized. A null value is also allowed, but not recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Whether a server can select the specified cipher suite given the available signature algorithms
+ for ServerKeyExchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check the signature algorithm for certificates in the peer's CertPath as specified in RFC 5246
+ 7.4.2, 7.4.4, 7.4.6 and similar rules for earlier TLS versions.
+
+ The supplied CertPath should include the trust anchor (its signature algorithm isn't checked, but in the
+ general case checking a certificate requires the issuer certificate).
+
+ if any certificate in the CertPath (excepting the trust anchor) has a
+ signature algorithm that is not one of the locally supported signature algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a pre_master_secret and send it encrypted to the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 5.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ see for valid constants.
+ valid lengths from 0 to 255.
+
+
+ see for valid constants.
+
+
+ valid lengths from 0 to 255.
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ The failure code associated with this exception, if one is set.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value the value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of the specified length, padded with
+ leading zeros as necessary.
+ @param length the fixed length of the result.
+ @param n the value to be converted.
+ @return a byte array padded to a fixed length with leading zeros.
+
+
+ Write the passed in value as unsigned bytes to the specified buffer range, padded with
+ leading zeros as necessary.
+
+ @param n
+ the value to be converted.
+ @param buf
+ the buffer to which the value is written.
+ @param off
+ the start offset in array buf
at which the data is written.
+ @param len
+ the fixed length of data written (possibly padded with leading zeros).
+
+
+
+ Creates a Random BigInteger from the secure random of a given bit length.
+
+
+
+
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+ Interface for matching objects in an .
+ The contravariant type of selectable objects.
+
+
+ Match the passed in object, returning true if it would be selected by this selector, false
+ otherwise.
+ The object to be matched.
+ true
if the objects is matched by this selector, false otherwise.
+
+
+ A generic interface describing a simple store of objects.
+ The covariant type of stored objects.
+
+
+ Enumerate the (possibly empty) collection of objects matched by the given selector.
+ The used to select matching objects.
+ An of the matching objects.
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ The DateTime value will be converted to UTC (using before
+ conversion.
+ A DateTime value not before the epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before the epoch.
+
+
+
+ Create a UTC DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+ 'unixMs' is before 'MinUnixMs' or after 'MaxUnixMs'.
+
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Return a byte array representing the implementing object.
+ An encoding of this object as a byte array.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ An
+
+
+
+
+
+ A
+
+
+
+
+
+ Seek ':" up to the limit.
+
+
+
+
+
+
+ Consume the dashes
+
+
+
+
+
+ Skip white space leave char in stream.
+
+
+
+
+ Read forward consuming the expected string.
+
+ expected string
+ false if not consumed
+
+
+
+ Consume until dash.
+
+ true if stream end not met
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ In case of IO failure.
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ The size of temporary buffer to use.
+ In case of IO failure.
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType
can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID
must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType
is
+ otherObjectDigest
.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID
must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null
if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null
if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null
if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extensions object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector
like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true
if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null
)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null
is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of List
s
+ made up of an Integer
in the first entry and a DER encoded
+ byte array or a String
in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null
)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null
is
+ given any will do.
+
+ The collection consists of GeneralName
objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of List
s
+ made up of an Integer
in the first entry and a DER encoded
+ byte array or a String
in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector
implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector
objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair
, this method
+ returns false
.
+
+ The X509CertificatePair
to be tested.
+ true
if the object matches this selector.
+
+
+
+ An ISet
of DerObjectIdentifier
objects.
+
+
+
+
+ An ICollection
of X509Name
objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null
is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate
being checked (or
+ null
)
+ @see #getAttrCertificateChecking()
+
+
+ If true
only complete CRLs are returned. Defaults to
+ false
.
+
+ @return true
if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false
.
+
+ @return Returns true
if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false
.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null
.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return the DER encoding of this certificate.
+
+ A byte array containing the DER encoding of this certificate.
+ If there is an error encoding the certificate.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ If verifier provider is not appropriate or the certificate signature algorithm
+ is invalid.
+
+
+ Verify the certificate's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the certificate's alternative
+ signature.
+ If verifier provider is not appropriate or the certificate alternative signature
+ algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Verify the CRL's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the CRL's alternative signature.
+
+ If verifier provider is not appropriate or the CRL alternative signature
+ algorithm is invalid.
+
+
+
+ Return the DER encoding of this CRL.
+
+ A byte array containing the DER encoding of this CRL.
+ If there is an error encoding the CRL.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false
{@link #getCertificateIssuer()} will always
+ return null
, previousCertificateIssuer
is
+ ignored. If this isIndirect
is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer
is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true
if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+ Value of is ignored.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ Create a builder for a version 2 CRL, initialised with another CRL.
+ Template CRL to base the new one on.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+ Create a generator for a version 3 certificate, initialised with another certificate.
+ Template certificate to base the new one on.
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
diff --git a/DevicePolling/bin/Debug/DevicePolling.exe b/DevicePolling/bin/Debug/DevicePolling.exe
new file mode 100644
index 0000000..a858f52
Binary files /dev/null and b/DevicePolling/bin/Debug/DevicePolling.exe differ
diff --git a/DevicePolling/bin/Debug/DevicePolling.exe.config b/DevicePolling/bin/Debug/DevicePolling.exe.config
new file mode 100644
index 0000000..472b944
--- /dev/null
+++ b/DevicePolling/bin/Debug/DevicePolling.exe.config
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DevicePolling/bin/Debug/DevicePolling.pdb b/DevicePolling/bin/Debug/DevicePolling.pdb
new file mode 100644
index 0000000..9b72b62
Binary files /dev/null and b/DevicePolling/bin/Debug/DevicePolling.pdb differ
diff --git a/DevicePolling/bin/Debug/DevicePolling.vshost.exe b/DevicePolling/bin/Debug/DevicePolling.vshost.exe
new file mode 100644
index 0000000..bb84a51
Binary files /dev/null and b/DevicePolling/bin/Debug/DevicePolling.vshost.exe differ
diff --git a/DevicePolling/bin/Debug/DevicePolling.vshost.exe.config b/DevicePolling/bin/Debug/DevicePolling.vshost.exe.config
new file mode 100644
index 0000000..e365603
--- /dev/null
+++ b/DevicePolling/bin/Debug/DevicePolling.vshost.exe.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/DevicePolling/bin/Debug/DevicePolling.vshost.exe.manifest b/DevicePolling/bin/Debug/DevicePolling.vshost.exe.manifest
new file mode 100644
index 0000000..061c9ca
--- /dev/null
+++ b/DevicePolling/bin/Debug/DevicePolling.vshost.exe.manifest
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DevicePolling/bin/Debug/Google.Protobuf.dll b/DevicePolling/bin/Debug/Google.Protobuf.dll
new file mode 100644
index 0000000..f73a17b
Binary files /dev/null and b/DevicePolling/bin/Debug/Google.Protobuf.dll differ
diff --git a/DevicePolling/bin/Debug/Google.Protobuf.pdb b/DevicePolling/bin/Debug/Google.Protobuf.pdb
new file mode 100644
index 0000000..4fd85f7
Binary files /dev/null and b/DevicePolling/bin/Debug/Google.Protobuf.pdb differ
diff --git a/DevicePolling/bin/Debug/Google.Protobuf.xml b/DevicePolling/bin/Debug/Google.Protobuf.xml
new file mode 100644
index 0000000..fbff505
--- /dev/null
+++ b/DevicePolling/bin/Debug/Google.Protobuf.xml
@@ -0,0 +1,10465 @@
+
+
+
+ Google.Protobuf
+
+
+
+
+ Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy
+
+
+
+
+ The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy
+
+
+
+
+ Determines which copy routine to use based on the number of bytes to be copied.
+
+
+
+
+ Reverses the order of bytes in the array
+
+
+
+
+ Immutable array of bytes.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+ This method encapsulates converting array to memory. Reduces need for SecuritySafeCritical
+ in .NET Framework.
+
+
+
+
+ Constructs a new ByteString from the given memory. The memory is
+ *not* copied, and must not be modified after this constructor is called.
+
+
+
+
+ Returns an empty ByteString.
+
+
+
+
+ Returns the length of this ByteString in bytes.
+
+
+
+
+ Returns true if this byte string is empty, false otherwise.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Converts this into a byte array.
+
+ The data is copied - changes to the returned array will not be reflected in this ByteString.
+ A byte array with the same data as this ByteString.
+
+
+
+ Converts this into a standard base64 representation.
+
+ A base64 representation of this ByteString.
+
+
+
+ Constructs a from the Base64 Encoded String.
+
+
+
+
+ Constructs a from data in the given stream, synchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from data in the given stream, asynchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ The cancellation token to use when reading from the stream, if any.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from the given array. The contents
+ are copied, so further modifications to the array will not
+ be reflected in the returned ByteString.
+ This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form
+ which is primarily useful for testing.
+
+
+
+
+ Constructs a from a portion of a byte array.
+
+
+
+
+ Constructs a from a read only span. The contents
+ are copied, so further modifications to the span will not
+ be reflected in the returned .
+
+
+
+
+ Creates a new by encoding the specified text with
+ the given encoding.
+
+
+
+
+ Creates a new by encoding the specified text in UTF-8.
+
+
+
+
+ Returns the byte at the given index.
+
+
+
+
+ Converts this into a string by applying the given encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with the given encoding.
+
+ The encoding to use to decode the binary data into text.
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Converts this into a string by applying the UTF-8 encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with UTF-8.
+
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Creates a CodedInputStream from this ByteString's data.
+
+
+
+
+ Compares two byte strings for equality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ true if the byte strings are equal; false otherwise.
+
+
+
+ Compares two byte strings for inequality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ false if the byte strings are equal; true otherwise.
+
+
+
+ Compares this byte string with another object.
+
+ The object to compare this with.
+ true if refers to an equal ; false otherwise.
+
+
+
+ Returns a hash code for this object. Two equal byte strings
+ will return the same hash code.
+
+ A hash code for this object.
+
+
+
+ Compares this byte string with another.
+
+ The to compare this with.
+ true if refers to an equal byte string; false otherwise.
+
+
+
+ Copies the entire byte array to the destination array provided at the offset specified.
+
+
+
+
+ Writes the entire byte array to the provided stream
+
+
+
+
+ SecuritySafeCritical attribute can not be placed on types with async methods.
+ This class has ByteString's async methods so it can be marked with SecuritySafeCritical.
+
+
+
+
+ Reads and decodes protocol message fields.
+
+
+
+ This class is generally used by generated code to read appropriate
+ primitives from the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format.
+
+
+ Repeated fields and map fields are not handled by this class; use
+ and to serialize such fields.
+
+
+
+
+
+ Whether to leave the underlying stream open when disposing of this stream.
+ This is always true when there's no stream.
+
+
+
+
+ Buffer of data read from the stream or provided at construction time.
+
+
+
+
+ The stream to read further input from, or null if the byte array buffer was provided
+ directly on construction, with no further data available.
+
+
+
+
+ The parser state is kept separately so that other parse implementations can reuse the same
+ parsing primitives.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given byte array.
+
+
+
+
+ Creates a new that reads from the given byte array slice.
+
+
+
+
+ Creates a new reading data from the given stream, which will be disposed
+ when the returned object is disposed.
+
+ The stream to read from.
+
+
+
+ Creates a new reading data from the given stream.
+
+ The stream to read from.
+ true to leave open when the returned
+ is disposed; false to dispose of the given stream when the
+ returned object is disposed.
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the default limits.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the specified limits.
+
+
+ This chains to the version with the default limits instead of vice versa to avoid
+ having to check that the default values are valid every time.
+
+
+
+
+ Creates a with the specified size and recursion limits, reading
+ from an input stream.
+
+
+ This method exists separately from the constructor to reduce the number of constructor overloads.
+ It is likely to be used considerably less frequently than the constructors, as the default limits
+ are suitable for most use cases.
+
+ The input stream to read from
+ The total limit of data to read from the stream.
+ The maximum recursion depth to allow while reading.
+ A CodedInputStream reading from with the specified size
+ and recursion limits.
+
+
+
+ Returns the current position in the input stream, or the position in the input buffer
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the stream.
+
+
+
+
+ Returns the size limit for this stream.
+
+
+ This limit is applied when reading from the underlying stream, as a sanity check. It is
+ not applied when reading from a byte array data source without an underlying stream.
+ The default value is Int32.MaxValue.
+
+
+ The size limit.
+
+
+
+
+ Returns the recursion limit for this stream. This limit is applied whilst reading messages,
+ to avoid maliciously-recursive data.
+
+
+ The default limit is 100.
+
+
+ The recursion limit for this stream.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Disposes of this instance, potentially closing any underlying stream.
+
+
+ As there is no flushing to perform here, disposing of a which
+ was constructed with the leaveOpen option parameter set to true (or one which
+ was constructed to read from a byte array) has no effect.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of stream".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputStream; it may be the end of the logical stream
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of stream. (0 is never a valid tag.)
+
+
+
+ Skips the data for the field with the tag we've just read.
+ This should be called directly after , when
+ the caller wishes to skip an unknown field.
+
+
+ This method throws if the last-read tag was an end-group tag.
+ If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the
+ start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly
+ resulting in an error if an end-group tag has not been paired with an earlier start-group tag.
+
+ The last tag was an end-group tag
+ The last read operation read to the end of the logical stream
+
+
+
+ Skip a group.
+
+
+
+
+ Reads a double field from the stream.
+
+
+
+
+ Reads a float field from the stream.
+
+
+
+
+ Reads a uint64 field from the stream.
+
+
+
+
+ Reads an int64 field from the stream.
+
+
+
+
+ Reads an int32 field from the stream.
+
+
+
+
+ Reads a fixed64 field from the stream.
+
+
+
+
+ Reads a fixed32 field from the stream.
+
+
+
+
+ Reads a bool field from the stream.
+
+
+
+
+ Reads a string field from the stream.
+
+
+
+
+ Reads an embedded message field value from the stream.
+
+
+
+
+ Reads an embedded group field from the stream.
+
+
+
+
+ Reads a bytes field value from the stream.
+
+
+
+
+ Reads a uint32 field value from the stream.
+
+
+
+
+ Reads an enum field value from the stream.
+
+
+
+
+ Reads an sfixed32 field value from the stream.
+
+
+
+
+ Reads an sfixed64 field value from the stream.
+
+
+
+
+ Reads an sint32 field value from the stream.
+
+
+
+
+ Reads an sint64 field value from the stream.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Reads a raw varint from the stream.
+
+
+
+
+ Reads a 32-bit little-endian integer from the stream.
+
+
+
+
+ Reads a 64-bit little-endian integer from the stream.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Called when buffer is empty to read more bytes from the
+ input. If is true, RefillBuffer() guarantees that
+ either there will be at least one byte in the buffer when it returns
+ or it will throw an exception. If is false,
+ RefillBuffer() returns false if no more bytes were available.
+
+
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a top-level message or a nested message after the limits for this message have been pushed.
+ (parser will proceed until the end of the current limit)
+ NOTE: this method needs to be public because it's invoked by the generated code - e.g. msg.MergeFrom(CodedInputStream input) method
+
+
+
+
+ Encodes and writes protocol message fields.
+
+
+
+ This class is generally used by generated code to write appropriate
+ primitives to the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format. Unlike some other implementations,
+ this does not include combined "write tag and value" methods. Generated
+ code knows the exact byte representations of the tags they're going to write,
+ so there's no need to re-encode them each time. Manually-written code calling
+ this class should just call one of the WriteTag overloads before each value.
+
+
+ Repeated fields and map fields are not handled by this class; use RepeatedField<T>
+ and MapField<TKey, TValue> to serialize such fields.
+
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ double field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ float field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bool field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ string field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ group field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ embedded message field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bytes field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ enum field, including the tag. The caller is responsible for
+ converting the enum value to its numeric value.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a length,
+ as written by .
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a tag.
+
+
+
+
+ The buffer size used by CreateInstance(Stream).
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array slice. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new which write to the given stream, and disposes of that
+ stream when the returned CodedOutputStream is disposed.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+ The size of buffer to use internally.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream.
+
+ The stream to write to.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to.
+ The size of buffer to use internally.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Returns the current position in the stream, or the position in the output buffer
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ Only the message data is written, without a length-delimiter.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Indicates that a CodedOutputStream wrapping a flat byte array
+ ran out of space.
+
+
+
+
+ Flushes any buffered data and optionally closes the underlying stream, if any.
+
+
+
+ By default, any underlying stream is closed by this method. To configure this behaviour,
+ use a constructor overload with a leaveOpen parameter. If this instance does not
+ have an underlying stream, this method does nothing.
+
+
+ For the sake of efficiency, calling this method does not prevent future write calls - but
+ if a later write ends up writing to a stream which has been disposed, that is likely to
+ fail. It is recommend that you not call any other methods after this.
+
+
+
+
+
+ Flushes any buffered data to the underlying stream (if there is one).
+
+
+
+
+ Verifies that SpaceLeft returns zero. It's common to create a byte array
+ that is exactly big enough to hold a message, then write to it with
+ a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that
+ the message was actually as big as expected, which can help finding bugs.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ Utility to compare if two Lists are the same, and the hash code
+ of a List.
+
+
+
+
+ Checks if two lists are equal.
+
+
+
+
+ Gets the list's hash code.
+
+
+
+
+ Representation of a map field in a Protocol Buffer message.
+
+ Key type in the map. Must be a type supported by Protocol Buffer map keys.
+ Value type in the map. Must be a type supported by Protocol Buffers.
+
+
+ For string keys, the equality comparison is provided by .
+
+
+ Null values are not permitted in the map, either for wrapper types or regular messages.
+ If a map is deserialized from a data stream and the value is missing from an entry, a default value
+ is created instead. For primitive types, that is the regular default value (0, the empty string and so
+ on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length
+ encoded value for the field.
+
+
+ This implementation does not generally prohibit the use of key/value types which are not
+ supported by Protocol Buffers (e.g. using a key type of byte
) but nor does it guarantee
+ that all operations will work in such cases.
+
+
+ The order in which entries are returned when iterating over this object is undefined, and may change
+ in future versions.
+
+
+
+
+
+ Creates a deep clone of this object.
+
+
+ A deep clone of this object.
+
+
+
+
+ Adds the specified key/value pair to the map.
+
+
+ This operation fails if the key already exists in the map. To replace an existing entry, use the indexer.
+
+ The key to add
+ The value to add.
+ The given key already exists in map.
+
+
+
+ Determines whether the specified key is present in the map.
+
+ The key to check.
+ true if the map contains the given key; false otherwise.
+
+
+
+ Removes the entry identified by the given key from the map.
+
+ The key indicating the entry to remove from the map.
+ true if the map contained the given key before the entry was removed; false otherwise.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key whose value to get.
+ When this method returns, the value associated with the specified key, if the key is found;
+ otherwise, the default value for the type of the parameter.
+ This parameter is passed uninitialized.
+ true if the map contains an element with the specified key; otherwise, false.
+
+
+
+ Gets or sets the value associated with the specified key.
+
+ The key of the value to get or set.
+ The property is retrieved and key does not exist in the collection.
+ The value associated with the specified key. If the specified key is not found,
+ a get operation throws a , and a set operation creates a new element with the specified key.
+
+
+
+ Gets a collection containing the keys in the map.
+
+
+
+
+ Gets a collection containing the values in the map.
+
+
+
+
+ Adds the specified entries to the map. The keys and values are not automatically cloned.
+
+ The entries to add to the map.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Adds the specified item to the map.
+
+ The item to add to the map.
+
+
+
+ Removes all items from the map.
+
+
+
+
+ Determines whether map contains an entry equivalent to the given key/value pair.
+
+ The key/value pair to find.
+
+
+
+
+ Copies the key/value pairs in this map to an array.
+
+ The array to copy the entries into.
+ The index of the array at which to start copying values.
+
+
+
+ Removes the specified key/value pair from the map.
+
+ Both the key and the value must be found for the entry to be removed.
+ The key/value pair to remove.
+ true if the key/value pair was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the map.
+
+
+
+
+ Gets a value indicating whether the map is read-only.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this map with another for equality.
+
+
+ The order of the key/value pairs in the maps is not deemed significant in this comparison.
+
+ The map to compare this with.
+ true if refers to an equal map; false otherwise.
+
+
+
+ Adds entries to the map from the given stream.
+
+
+ It is assumed that the stream is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the stream until the end is reached, or
+ a different tag is encountered.
+
+ Stream to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Adds entries to the map from the given parse context.
+
+
+ It is assumed that the input is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the input until the end is reached, or
+ a different tag is encountered.
+
+ Input to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Writes the contents of this map to the given coded output stream, using the specified codec
+ to encode each entry.
+
+ The output stream to write to.
+ The codec to use for each entry.
+
+
+
+ Writes the contents of this map to the given write context, using the specified codec
+ to encode each entry.
+
+ The write context to write to.
+ The codec to use for each entry.
+
+
+
+ Calculates the size of this map based on the given entry codec.
+
+ The codec to use to encode each entry.
+
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ A codec for a specific map field. This contains all the information required to encode and
+ decode the nested messages.
+
+
+
+
+ Creates a new entry codec based on a separate key codec and value codec,
+ and the tag to use for each map entry.
+
+ The key codec.
+ The value codec.
+ The map tag to use to introduce each map entry.
+
+
+
+ The key codec.
+
+
+
+
+ The value codec.
+
+
+
+
+ The tag used in the enclosing message to indicate map entries.
+
+
+
+
+ Provides a central place to implement equality comparisons, primarily for bitwise float/double equality.
+
+
+
+
+ Returns an equality comparer for suitable for Protobuf equality comparisons.
+ This is usually just the default equality comparer for the type, but floating point numbers are compared
+ bitwise.
+
+ The type of equality comparer to return.
+ The equality comparer.
+
+
+
+ Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Read-only wrapper around another dictionary.
+
+
+
+
+ The contents of a repeated field: essentially, a collection with some extra
+ restrictions (no null values) and capabilities (deep cloning).
+
+
+ This implementation does not generally prohibit the use of types which are not
+ supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases.
+
+ The element type of the repeated field.
+
+
+
+ Creates a deep clone of this repeated field.
+
+
+ If the field type is
+ a message type, each element is also cloned; otherwise, it is
+ assumed that the field type is primitive (including string and
+ bytes, both of which are immutable) and so a simple copy is
+ equivalent to a deep clone.
+
+ A deep clone of this repeated field.
+
+
+
+ Adds the entries from the given input stream, decoding them with the specified codec.
+
+ The input stream to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Adds the entries from the given parse context, decoding them with the specified codec.
+
+ The input to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Calculates the size of this collection based on the given codec.
+
+ The codec to use when encoding each field.
+ The number of bytes that would be written to an output by one of the WriteTo methods,
+ using the same codec.
+
+
+
+ Writes the contents of this collection to the given ,
+ encoding each value using the specified codec.
+
+ The output stream to write to.
+ The codec to use when encoding each value.
+
+
+
+ Writes the contents of this collection to the given write context,
+ encoding each value using the specified codec.
+
+ The write context to write to.
+ The codec to use when encoding each value.
+
+
+
+ Gets and sets the capacity of the RepeatedField's internal array. WHen set, the internal array is reallocated to the given capacity.
+ The new value is less than Count -or- when Count is less than 0.
+
+
+
+
+ Adds the specified item to the collection.
+
+ The item to add.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Determines whether this collection contains the given item.
+
+ The item to find.
+ true if this collection contains the given item; false otherwise.
+
+
+
+ Copies this collection to the given array.
+
+ The array to copy to.
+ The first index of the array to copy to.
+
+
+
+ Removes the specified item from the collection
+
+ The item to remove.
+ true if the item was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the collection.
+
+
+
+
+ Gets a value indicating whether the collection is read-only.
+
+
+
+
+ Adds all of the specified values into this collection.
+
+ The values to add to this collection.
+
+
+
+ Adds all of the specified values into this collection. This method is present to
+ allow repeated fields to be constructed from queries within collection initializers.
+ Within non-collection-initializer code, consider using the equivalent
+ method instead for clarity.
+
+ The values to add to this collection.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this repeated field with another for equality.
+
+ The repeated field to compare this with.
+ true if refers to an equal repeated field; false otherwise.
+
+
+
+ Returns the index of the given item within the collection, or -1 if the item is not
+ present.
+
+ The item to find in the collection.
+ The zero-based index of the item, or -1 if it is not found.
+
+
+
+ Inserts the given item at the specified index.
+
+ The index at which to insert the item.
+ The item to insert.
+
+
+
+ Removes the item at the given index.
+
+ The zero-based index of the item to remove.
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ Gets or sets the item at the specified index.
+
+
+ The element at the specified index.
+
+ The zero-based index of the element to get or set.
+ The item at the specified index.
+
+
+
+ Extension methods for , effectively providing
+ the familiar members from previous desktop framework versions while
+ targeting the newer releases, .NET Core etc.
+
+
+
+
+ Returns the public getter of a property, or null if there is no such getter
+ (either because it's read-only, or the getter isn't public).
+
+
+
+
+ Returns the public setter of a property, or null if there is no such setter
+ (either because it's write-only, or the setter isn't public).
+
+
+
+
+ Provides extension methods on Type that just proxy to TypeInfo.
+ These are used to support the new type system from .NET 4.5, without
+ having calls to GetTypeInfo all over the place. While the methods here are meant to be
+ broadly compatible with the desktop framework, there are some subtle differences in behaviour - but
+ they're not expected to affect our use cases. While the class is internal, that should be fine: we can
+ evaluate each new use appropriately.
+
+
+
+
+ See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom
+
+
+
+
+ Returns a representation of the public property associated with the given name in the given type,
+ including inherited properties or null if there is no such public property.
+ Here, "public property" means a property where either the getter, or the setter, or both, is public.
+
+
+
+
+ Returns a representation of the public method associated with the given name in the given type,
+ including inherited methods.
+
+
+ This has a few differences compared with Type.GetMethod in the desktop framework. It will throw
+ if there is an ambiguous match even between a private method and a public one, but it *won't* throw
+ if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and
+ class Child : Base declares public void Foo(long)).
+
+ One type in the hierarchy declared more than one method with the same name
+
+
+
+ Represents a non-generic extension definition. This API is experimental and subject to change.
+
+
+
+
+ Internal use. Creates a new extension with the specified field number.
+
+
+
+
+ Gets the field number of this extension
+
+
+
+
+ Represents a type-safe extension identifier used for getting and setting single extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The field value type of this extension
+
+
+
+ Creates a new extension identifier with the specified field number and codec
+
+
+
+
+ Represents a type-safe extension identifier used for getting repeated extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The repeated field value type of this extension
+
+
+
+ Creates a new repeated extension identifier with the specified field number and codec
+
+
+
+
+ Provides extensions to messages while parsing. This API is experimental and subject to change.
+
+
+
+
+ Creates a new empty extension registry
+
+
+
+
+ Gets the total number of extensions in this extension registry
+
+
+
+
+ Returns whether the registry is readonly
+
+
+
+
+ Adds the specified extension to the registry
+
+
+
+
+ Adds the specified extensions to the registry
+
+
+
+
+ Clears the registry of all values
+
+
+
+
+ Gets whether the extension registry contains the specified extension
+
+
+
+
+ Copies the arrays in the registry set to the specified array at the specified index
+
+ The array to copy to
+ The array index to start at
+
+
+
+ Returns an enumerator to enumerate through the items in the registry
+
+ Returns an enumerator for the extensions in this registry
+
+
+
+ Removes the specified extension from the set
+
+ The extension
+ true if the extension was removed, otherwise false
+
+
+
+ Clones the registry into a new registry
+
+
+
+
+ Methods for managing s with null checking.
+
+ Most users will not use this class directly and its API is experimental and subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if it doesn't exist in this set
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it doesn't exist
+
+
+
+
+ Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null.
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Merges the second set into the first set, creating a new instance if first is null
+
+
+
+
+ Clones the set into a new set. If the set is null, this returns null
+
+
+
+
+ Used for keeping track of extensions in messages.
+ methods route to this set.
+
+ Most users will not need to use this class directly
+
+ The message type that extensions in this set target
+
+
+
+ Gets a hash code of the set
+
+
+
+
+ Returns whether this set is equal to the other object
+
+
+
+
+ Calculates the size of this extension set
+
+
+
+
+ Writes the extension values in this set to the output stream
+
+
+
+
+ Writes the extension values in this set to the write context
+
+
+
+
+ Factory methods for .
+
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a message field with the given tag.
+
+ The tag.
+ A parser to use for the message type.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a group field with the given tag.
+
+ The start group tag.
+ The end group tag.
+ A parser to use for the group message type.
+ A codec for given tag
+
+
+
+ Creates a codec for a wrapper type of a class - which must be string or ByteString.
+
+
+
+
+ Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64,
+ Bool, Single or Double.
+
+
+
+
+ Helper code to create codecs for wrapper types.
+
+
+ Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it
+ slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place,
+ we can refactor later if we come up with something cleaner.
+
+
+
+
+ Returns a field codec which effectively wraps a value of type T in a message.
+
+
+
+
+
+
+ An encode/decode pair for a single field. This effectively encapsulates
+ all the information needed to read or write the field value from/to a coded
+ stream.
+
+
+ This class is public and has to be as it is used by generated code, but its public
+ API is very limited - just what the generated code needs to call directly.
+
+
+
+ This never writes default values to the stream, and does not address "packedness"
+ in repeated fields itself, other than to know whether or not the field *should* be packed.
+
+
+
+
+ Merges an input stream into a value
+
+
+
+
+ Merges a value into a reference to another value, returning a boolean if the value was set
+
+
+
+
+ Returns a delegate to write a value (unconditionally) to a coded output stream.
+
+
+
+
+ Returns the size calculator for just a value.
+
+
+
+
+ Returns a delegate to read a value from a coded input stream. It is assumed that
+ the stream is already positioned on the appropriate tag.
+
+
+
+
+ Returns a delegate to merge a value from a coded input stream.
+ It is assumed that the stream is already positioned on the appropriate tag
+
+
+
+
+ Returns a delegate to merge two values together.
+
+
+
+
+ Returns the fixed size for an entry, or 0 if sizes vary.
+
+
+
+
+ Gets the tag of the codec.
+
+
+ The tag of the codec.
+
+
+
+
+ Gets the end tag of the codec or 0 if there is no end tag
+
+
+ The end tag of the codec.
+
+
+
+
+ Default value for this codec. Usually the same for every instance of the same type, but
+ for string/ByteString wrapper fields the codec's default value is null, whereas for
+ other string/ByteString fields it's "" or ByteString.Empty.
+
+
+ The default value of the codec's type.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Reads a value of the codec type from the given .
+
+ The input stream to read from.
+ The value read from the stream.
+
+
+
+ Reads a value of the codec type from the given .
+
+ The parse context to read from.
+ The value read.
+
+
+
+ Calculates the size required to write the given value, with a tag,
+ if the value is not the default.
+
+
+
+
+ Calculates the size required to write the given value, with a tag, even
+ if the value is the default.
+
+
+
+
+ A tree representation of a FieldMask. Each leaf node in this tree represent
+ a field path in the FieldMask.
+
+ For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be:
+
+ [root] -+- foo -+- bar
+ | |
+ | +- baz
+ |
+ +- bar --- baz
+
+
+ By representing FieldMasks with this tree structure we can easily convert
+ a FieldMask to a canonical form, merge two FieldMasks, calculate the
+ intersection to two FieldMasks and traverse all fields specified by the
+ FieldMask in a message tree.
+
+
+
+
+ Creates an empty FieldMaskTree.
+
+
+
+
+ Creates a FieldMaskTree for a given FieldMask.
+
+
+
+
+ Adds a field path to the tree. In a FieldMask, every field path matches the
+ specified field as well as all its sub-fields. For example, a field path
+ "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding
+ a field path to the tree, redundant sub-paths will be removed. That is,
+ after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it
+ exists, which will turn the tree node for "foo.bar" to a leaf node.
+ Likewise, if the field path to add is a sub-path of an existing leaf node,
+ nothing will be changed in the tree.
+
+
+
+
+ Merges all field paths in a FieldMask into this tree.
+
+
+
+
+ Converts this tree to a FieldMask.
+
+
+
+
+ Gathers all field paths in a sub-tree.
+
+
+
+
+ Adds the intersection of this tree with the given to .
+
+
+
+
+ Merges all fields specified by this FieldMaskTree from to .
+
+
+
+
+ Merges all fields specified by a sub-tree from to .
+
+
+
+
+ Class containing helpful workarounds for various platform compatibility
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ parsing from and writing to .
+
+
+
+
+ Internal implementation of merging data from given parse context into this message.
+ Users should never invoke this method directly.
+
+
+
+
+ Internal implementation of writing this message to a given write context.
+ Users should never invoke this method directly.
+
+
+
+
+ A message type that has a custom string format for diagnostic purposes.
+
+
+
+ Calling on a generated message type normally
+ returns the JSON representation. If a message type implements this interface,
+ then the method will be called instead of the regular
+ JSON formatting code, but only when ToString() is called either on the message itself
+ or on another message which contains it. This does not affect the normal JSON formatting of
+ the message.
+
+
+ For example, if you create a proto message representing a GUID, the internal
+ representation may be a bytes field or four fixed32 fields. However, when debugging
+ it may be more convenient to see a result in the same format as provides.
+
+ This interface extends to avoid it accidentally being implemented
+ on types other than messages, where it would not be used by anything in the framework.
+
+
+
+
+ Returns a string representation of this object, for diagnostic purposes.
+
+
+ This method is called when a message is formatted as part of a
+ call. It does not affect the JSON representation used by other than
+ in calls to . While it is recommended
+ that the result is valid JSON, this is never assumed by the Protobuf library.
+
+ A string representation of this object, for diagnostic purposes.
+
+
+
+ Generic interface for a deeply cloneable type.
+
+
+
+ All generated messages implement this interface, but so do some non-message types.
+ Additionally, due to the type constraint on T in ,
+ it is simpler to keep this as a separate interface.
+
+
+ The type itself, returned by the method.
+
+
+
+ Creates a deep clone of this object.
+
+ A deep clone of this object.
+
+
+
+ Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class.
+ This interface is experiemental and is subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if the extension isn't registered in this set.
+ For a version of this method that never returns null, use
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it hasn't already been registered.
+
+
+
+
+ Sets the value of the specified extension
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified repeated extension
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ basic operations required for serialization.
+
+
+
+
+ Merges the data from the specified coded input stream with the current message.
+
+ See the user guide for precise merge semantics.
+
+
+
+
+ Writes the data to the given coded output stream.
+
+ Coded output stream to write the data to. Must not be null.
+
+
+
+ Calculates the size of this message in Protocol Buffer wire format, in bytes.
+
+ The number of bytes required to write this message
+ to a coded output stream.
+
+
+
+ Descriptor for this message. All instances are expected to return the same descriptor,
+ and for generated types this will be an explicitly-implemented member, returning the
+ same value as the static property declared on the type.
+
+
+
+
+ Generic interface for a Protocol Buffers message,
+ where the type parameter is expected to be the same type as
+ the implementation class.
+
+ The message type.
+
+
+
+ Merges the given message into this one.
+
+ See the user guide for precise merge semantics.
+ The message to merge with this one. Must not be null.
+
+
+
+ Thrown when an attempt is made to parse invalid JSON, e.g. using
+ a non-string property key, or including a redundant comma. Parsing a protocol buffer
+ message represented in JSON using can throw both this
+ exception and depending on the situation. This
+ exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException
+ is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer
+ message.
+
+
+
+
+ Thrown when a protocol message being parsed is invalid in some way,
+ e.g. it contains a malformed varint or a negative byte length.
+
+
+
+
+ Creates an exception for an error condition of an invalid tag being encountered.
+
+
+
+
+ Reflection-based converter from messages to JSON.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON formatting working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ The JSON representation of the first 160 characters of Unicode.
+ Empty strings are replaced by the static constructor.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The formatted message.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The TextWriter to write the formatted message to.
+ The formatted message.
+
+
+
+ Converts a message to JSON for diagnostic purposes with no extra context.
+
+
+
+ This differs from calling on the default JSON
+ formatter in its handling of . As no type registry is available
+ in calls, the normal way of resolving the type of
+ an Any message cannot be applied. Instead, a JSON property named @value
+ is included with the base64 data from the property of the message.
+
+ The value returned by this method is only designed to be used for diagnostic
+ purposes. It may not be parsable by , and may not be parsable
+ by other Protocol Buffer implementations.
+
+ The message to format for diagnostic purposes.
+ The diagnostic-only JSON representation of the message
+
+
+
+ Determines whether or not a field value should be serialized according to the field,
+ its value in the message, and the settings of this formatter.
+
+
+
+
+ Writes a single value to the given writer as JSON. Only types understood by
+ Protocol Buffers can be written in this way. This method is only exposed for
+ advanced use cases; most users should be using
+ or .
+
+ The writer to write the value to. Must not be null.
+ The value to write. May be null.
+
+
+
+ Central interception point for well-known type formatting. Any well-known types which
+ don't need special handling can fall back to WriteMessage. We avoid assuming that the
+ values are using the embedded well-known types, in order to allow for dynamic messages
+ in the future.
+
+
+
+
+ Writes a string (including leading and trailing double quotes) to a builder, escaping as required.
+
+
+ Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc.
+
+
+
+
+ Settings controlling JSON formatting.
+
+
+
+
+ Default settings, as used by
+
+
+
+
+ Whether fields which would otherwise not be included in the formatted data
+ should be formatted even when the value is not present, or has the default value.
+ This option only affects fields which don't support "presence" (e.g.
+ singular non-optional proto3 primitive fields).
+
+
+
+
+ The type registry used to format messages.
+
+
+
+
+ Whether to format enums as ints. Defaults to false.
+
+
+
+
+ Whether to use the original proto field names as defined in the .proto file. Defaults to false.
+
+
+
+
+ Creates a new object with the specified formatting of default values
+ and an empty type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified formatting of default values
+ and type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified parameters.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages. TypeRegistry.Empty will be used if it is null.
+ true to format the enums as integers; false to format enums as enum names.
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Creates a new object with the specified formatting of default values and the current settings.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified type registry and the current settings.
+
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified enums formatting option and the current settings.
+
+ true to format the enums as integers; false to format enums as enum names.
+
+
+
+ Creates a new object with the specified field name formatting option and the current settings.
+
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Reflection-based converter from JSON to messages.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON parsing working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Parses and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ The JSON to parse.
+
+
+
+ Parses JSON read from and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ Reader providing the JSON to parse.
+
+
+
+ Merges the given message using data from the given tokenizer. In most cases, the next
+ token should be a "start object" token, but wrapper types and nullity can invalidate
+ that assumption. This is implemented as an LL(1) recursive descent parser over the stream
+ of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the
+ tokenizer performing that validation - but not every token stream is valid "protobuf JSON".
+
+
+
+
+ Parses into a new message.
+
+ The type of message to create.
+ The JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ The type of message to create.
+ Reader providing the JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses into a new message.
+
+ The JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ Reader providing the JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new instance of the message type for the given field.
+
+
+
+
+ Checks that any infinite/NaN values originated from the correct text.
+ This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the
+ way that Mono parses out-of-range values as infinity.
+
+
+
+
+ Settings controlling JSON parsing.
+
+
+
+
+ Default settings, as used by . This has the same default
+ recursion limit as , and an empty type registry.
+
+
+
+
+ The maximum depth of messages to parse. Note that this limit only applies to parsing
+ messages, not collections - so a message within a collection within a message only counts as
+ depth 2, not 3.
+
+
+
+
+ The type registry used to parse messages.
+
+
+
+
+ Whether the parser should ignore unknown fields (true) or throw an exception when
+ they are encountered (false).
+
+
+
+
+ Creates a new object with the specified recursion limit.
+
+ The maximum depth of messages to parse
+
+
+
+ Creates a new object with the specified recursion limit and type registry.
+
+ The maximum depth of messages to parse
+ The type registry used to parse messages
+
+
+
+ Creates a new object set to either ignore unknown fields, or throw an exception
+ when unknown fields are encountered.
+
+ true if unknown fields should be ignored when parsing; false to throw an exception.
+
+
+
+ Creates a new object based on this one, but with the specified recursion limit.
+
+ The new recursion limit.
+
+
+
+ Creates a new object based on this one, but with the specified type registry.
+
+ The new type registry. Must not be null.
+
+
+
+ Simple but strict JSON tokenizer, rigidly following RFC 7159.
+
+
+
+ This tokenizer is stateful, and only returns "useful" tokens - names, values etc.
+ It does not create tokens for the separator between names and values, or for the comma
+ between values. It validates the token stream as it goes - so callers can assume that the
+ tokens it produces are appropriate. For example, it would never produce "start object, end array."
+
+ Implementation details: the base class handles single token push-back and
+ Not thread-safe.
+
+
+
+
+ Creates a tokenizer that reads from the given text reader.
+
+
+
+
+ Creates a tokenizer that first replays the given list of tokens, then continues reading
+ from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back
+ on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was
+ created for the sake of Any parsing.
+
+
+
+
+ Returns the depth of the stack, purely in objects (not collections).
+ Informally, this is the number of remaining unclosed '{' characters we have.
+
+
+
+
+ Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream,
+ after which point Next() should not be called again.
+
+ This implementation provides single-token buffering, and calls if there is no buffered token.
+ The next token in the stream. This is never null.
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Returns the next JSON token in the stream, when requested by the base class. (The method delegates
+ to this if it doesn't have a buffered token.)
+
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Skips the value we're about to read. This must only be called immediately after reading a property name.
+ If the value is an object or an array, the complete object/array is skipped.
+
+
+
+
+ Tokenizer which first exhausts a list of tokens, then consults another tokenizer.
+
+
+
+
+ Tokenizer which does all the *real* work of parsing JSON.
+
+
+
+
+ This method essentially just loops through characters skipping whitespace, validating and
+ changing state (e.g. from ObjectBeforeColon to ObjectAfterColon)
+ until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point
+ it returns the token. Although the method is large, it would be relatively hard to break down further... most
+ of it is the large switch statement, which sometimes returns and sometimes doesn't.
+
+
+
+
+ Reads a string token. It is assumed that the opening " has already been read.
+
+
+
+
+ Reads an escaped character. It is assumed that the leading backslash has already been read.
+
+
+
+
+ Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read.
+
+
+
+
+ Consumes a text-only literal, throwing an exception if the read text doesn't match it.
+ It is assumed that the first letter of the literal has already been read.
+
+
+
+
+ Validates that we're in a valid state to read a value (using the given error prefix if necessary)
+ and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty.
+
+
+
+
+ Pops the top-most container, and sets the state to the appropriate one for the end of a value
+ in the parent container.
+
+
+
+
+ Possible states of the tokenizer.
+
+
+ This is a flags enum purely so we can simply and efficiently represent a set of valid states
+ for checking.
+
+ Each is documented with an example,
+ where ^ represents the current position within the text stream. The examples all use string values,
+ but could be any value, including nested objects/arrays.
+ The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects).
+ Any additional notional state of "AfterValue" indicates that a value has been completed, at which
+ point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue.
+
+
+ These states were derived manually by reading RFC 7159 carefully.
+
+
+
+
+
+ ^ { "foo": "bar" }
+ Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue"
+
+
+
+
+ { "foo": "bar" } ^
+ After the value in a document. Next states: ReaderExhausted
+
+
+
+
+ { "foo": "bar" } ^ (and already read to the end of the reader)
+ Terminal state.
+
+
+
+
+ { ^ "foo": "bar" }
+ Before the *first* property in an object.
+ Next states:
+ "AfterValue" (empty object)
+ ObjectBeforeColon (read a name)
+
+
+
+
+ { "foo" ^ : "bar", "x": "y" }
+ Next state: ObjectAfterColon
+
+
+
+
+ { "foo" : ^ "bar", "x": "y" }
+ Before any property other than the first in an object.
+ (Equivalently: after any property in an object)
+ Next states:
+ "AfterValue" (value is simple)
+ ObjectStart (value is object)
+ ArrayStart (value is array)
+
+
+
+
+ { "foo" : "bar" ^ , "x" : "y" }
+ At the end of a property, so expecting either a comma or end-of-object
+ Next states: ObjectAfterComma or "AfterValue"
+
+
+
+
+ { "foo":"bar", ^ "x":"y" }
+ Read the comma after the previous property, so expecting another property.
+ This is like ObjectStart, but closing brace isn't valid here
+ Next state: ObjectBeforeColon.
+
+
+
+
+ [ ^ "foo", "bar" ]
+ Before the *first* value in an array.
+ Next states:
+ "AfterValue" (read a value)
+ "AfterValue" (end of array; will pop stack)
+
+
+
+
+ [ "foo" ^ , "bar" ]
+ After any value in an array, so expecting either a comma or end-of-array
+ Next states: ArrayAfterComma or "AfterValue"
+
+
+
+
+ [ "foo", ^ "bar" ]
+ After a comma in an array, so there *must* be another value (simple or complex).
+ Next states: "AfterValue" (simple value), StartObject, StartArray
+
+
+
+
+ Wrapper around a text reader allowing small amounts of buffering and location handling.
+
+
+
+
+ The buffered next character, if we have one.
+
+
+
+
+ Returns the next character in the stream, or null if we have reached the end.
+
+
+
+
+
+ Creates a new exception appropriate for the current state of the reader.
+
+
+
+
+ Stream implementation which proxies another stream, only allowing a certain amount
+ of data to be read. Note that this is only used to read delimited streams, so it
+ doesn't attempt to implement everything.
+
+
+
+
+ Extension methods on and .
+
+
+
+
+ Merges data from the given byte array into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given byte array slice into an existing message.
+
+ The message to merge the data into.
+ The data containing the slice to merge, which must be protobuf-encoded binary data.
+ The offset of the slice to merge.
+ The length of the slice to merge.
+
+
+
+ Merges data from the given byte string into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given stream into an existing message.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given span into an existing message.
+
+ The message to merge the data into.
+ Span containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges length-delimited data from the given stream into an existing message.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Converts the given message into a byte array in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte array.
+
+
+
+ Writes the given message data to the given stream in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the length and then data of the given message to a stream.
+
+ The message to write.
+ The output stream to write to.
+
+
+
+ Converts the given message into a byte string in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte string.
+
+
+
+ Writes the given message data to the given buffer writer in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the given message data to the given span in protobuf encoding.
+ The size of the destination span needs to fit the serialized size
+ of the message exactly, otherwise an exception is thrown.
+
+ The message to write to the stream.
+ The span to write to. Size must match size of the message exactly.
+
+
+
+ Checks if all required fields in a message have values set. For proto3 messages, this returns true
+
+
+
+
+ A general message parser, typically used by reflection-based code as all the methods
+ return simple .
+
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ A parser for a specific message type.
+
+
+
+ This delegates most behavior to the
+ implementation within the original type, but
+ provides convenient overloads to parse from a variety of sources.
+
+
+ Most applications will never need to create their own instances of this type;
+ instead, use the static Parser property of a generated message type to obtain a
+ parser for that type.
+
+
+ The type of message to be parsed.
+
+
+
+ Creates a new parser.
+
+
+ The factory method is effectively an optimization over using a generic constraint
+ to require a parameterless constructor: delegates are significantly faster to execute.
+
+ Function to invoke when a new, empty message is required.
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the
+ extensionByNumber table in ExtensionRegistry.
+
+
+
+
+ An opaque struct that represents the current parsing state and is passed along
+ as the parsing proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Initialize a , building all from defaults and
+ the given .
+
+
+
+
+ Initialize a using existing , e.g. from .
+
+
+
+
+ Creates a ParseContext instance from CodedInputStream.
+ WARNING: internally this copies the CodedInputStream's state, so after done with the ParseContext,
+ the CodedInputStream's state needs to be updated.
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the input.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of input".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputReader; it may be the end of the logical input
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of input. (0 is never a valid tag.)
+
+
+
+ Reads a double field from the input.
+
+
+
+
+ Reads a float field from the input.
+
+
+
+
+ Reads a uint64 field from the input.
+
+
+
+
+ Reads an int64 field from the input.
+
+
+
+
+ Reads an int32 field from the input.
+
+
+
+
+ Reads a fixed64 field from the input.
+
+
+
+
+ Reads a fixed32 field from the input.
+
+
+
+
+ Reads a bool field from the input.
+
+
+
+
+ Reads a string field from the input.
+
+
+
+
+ Reads an embedded message field value from the input.
+
+
+
+
+ Reads an embedded group field from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a uint32 field value from the input.
+
+
+
+
+ Reads an enum field value from the input.
+
+
+
+
+ Reads an sfixed32 field value from the input.
+
+
+
+
+ Reads an sfixed64 field value from the input.
+
+
+
+
+ Reads an sint32 field value from the input.
+
+
+
+
+ Reads an sint64 field value from the input.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ The position within the current buffer (i.e. the next byte to read)
+
+
+
+
+ Size of the current buffer
+
+
+
+
+ If we are currently inside a length-delimited block, this is the number of
+ bytes in the buffer that are still available once we leave the delimited block.
+
+
+
+
+ The absolute position of the end of the current length-delimited block (including totalBytesRetired)
+
+
+
+
+ The total number of consumed before the start of the current buffer. The
+ total bytes read up to the current position can be computed as
+ totalBytesRetired + bufferPos.
+
+
+
+
+ The last tag we read. 0 indicates we've read to the end of the stream
+ (or haven't read anything yet).
+
+
+
+
+ The next tag, used to store the value read by PeekTag.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Primitives for parsing protobuf wire format.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Parses the next tag.
+ If the end of logical stream was reached, an invalid tag of 0 is returned.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Parses a raw varint.
+
+
+
+
+ Parses a raw Varint. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Parses a 32-bit little-endian integer.
+
+
+
+
+ Parses a 64-bit little-endian integer.
+
+
+
+
+ Parses a double value.
+
+
+
+
+ Parses a float value.
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads and discards bytes.
+
+ the end of the stream
+ or the current limit was reached
+
+
+
+ Reads a string field value from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a UTF-8 string from the next "length" bytes.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a string assuming that it is spread across multiple spans in a .
+
+
+
+
+ Validates that the specified size doesn't exceed the current limit. If it does then remaining bytes
+ are skipped and an error is thrown.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Decode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 32 bits to be varint encoded, thus always taking
+ 5 bytes on the wire.)
+
+
+
+
+ Decode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse.
+ When parsing from a Stream this can return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse
+ in the underlying data source.
+ When parsing from a Stream this will return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Read raw bytes of the specified length into a span. The amount of data available and the current limit should
+ be checked before calling this method.
+
+
+
+
+ Reading and skipping messages / groups
+
+
+
+
+ Skip a group.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Fast parsing primitives for wrapper types
+
+
+
+
+ Helper methods for throwing exceptions when preconditions are not met.
+
+
+ This class is used internally and by generated code; it is not particularly
+ expected to be used from application code, although nothing prevents it
+ from being used that way.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+ This is equivalent to but without the type parameter
+ constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
+ with a value type - but it gets in the way if either you want to use it with a nullable
+ value type, or you want to use it with an unconstrained type parameter.
+
+
+
+
+ Container for a set of custom options specified within a message, field etc.
+
+
+
+ This type is publicly immutable, but internally mutable. It is only populated
+ by the descriptor parsing code - by the time any user code is able to see an instance,
+ it will be fully initialized.
+
+
+ If an option is requested using the incorrect method, an answer may still be returned: all
+ of the numeric types are represented internally using 64-bit integers, for example. It is up to
+ the caller to ensure that they make the appropriate method call for the option they're interested in.
+ Note that enum options are simply stored as integers, so the value should be fetched using
+ and then cast appropriately.
+
+
+ Repeated options are currently not supported. Asking for a single value of an option
+ which was actually repeated will return the last value, except for message types where
+ all the set values are merged together.
+
+
+
+
+
+ Retrieves a Boolean value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 32-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 64-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a string value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a bytes value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a message value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+ Holder for reflection information generated from google/protobuf/descriptor.proto
+
+
+ File descriptor for google/protobuf/descriptor.proto
+
+
+
+ The protocol compiler can output a FileDescriptorSet containing the .proto
+ files it parses.
+
+
+
+ Field number for the "file" field.
+
+
+
+ Describes a complete .proto file.
+
+
+
+ Field number for the "name" field.
+
+
+
+ file name, relative to root of source tree
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "package" field.
+
+
+
+ e.g. "foo", "foo.bar", etc.
+
+
+
+ Gets whether the "package" field is set
+
+
+ Clears the value of the "package" field
+
+
+ Field number for the "dependency" field.
+
+
+
+ Names of files imported by this file.
+
+
+
+ Field number for the "public_dependency" field.
+
+
+
+ Indexes of the public imported files in the dependency list above.
+
+
+
+ Field number for the "weak_dependency" field.
+
+
+
+ Indexes of the weak imported files in the dependency list.
+ For Google-internal migration only. Do not use.
+
+
+
+ Field number for the "message_type" field.
+
+
+
+ All top-level definitions in this file.
+
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "service" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "source_code_info" field.
+
+
+
+ This field contains optional information about the original source code.
+ You may safely remove this entire field without harming runtime
+ functionality of the descriptors -- the information is needed only by
+ development tools.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The syntax of the proto file.
+ The supported values are "proto2" and "proto3".
+
+
+
+ Gets whether the "syntax" field is set
+
+
+ Clears the value of the "syntax" field
+
+
+
+ Describes a message type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "field" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "nested_type" field.
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "extension_range" field.
+
+
+ Field number for the "oneof_decl" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved field names, which may not be used by fields in the same message.
+ A given name may only be reserved once.
+
+
+
+ Container for nested types declared in the DescriptorProto message type.
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "options" field.
+
+
+
+ Range of reserved tag numbers. Reserved tag numbers may not be used by
+ fields or extension ranges in the same message. Reserved ranges may
+ not overlap.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+
+ Describes a field within a message.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "label" field.
+
+
+ Gets whether the "label" field is set
+
+
+ Clears the value of the "label" field
+
+
+ Field number for the "type" field.
+
+
+
+ If type_name is set, this need not be set. If both this and type_name
+ are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "type_name" field.
+
+
+
+ For message and enum types, this is the name of the type. If the name
+ starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
+ rules are used to find the type (i.e. first the nested types within this
+ message are searched, then within the parent, on up to the root
+ namespace).
+
+
+
+ Gets whether the "type_name" field is set
+
+
+ Clears the value of the "type_name" field
+
+
+ Field number for the "extendee" field.
+
+
+
+ For extensions, this is the name of the type being extended. It is
+ resolved in the same manner as type_name.
+
+
+
+ Gets whether the "extendee" field is set
+
+
+ Clears the value of the "extendee" field
+
+
+ Field number for the "default_value" field.
+
+
+
+ For numeric types, contains the original text representation of the value.
+ For booleans, "true" or "false".
+ For strings, contains the default text contents (not escaped in any way).
+ For bytes, contains the C escaped value. All bytes >= 128 are escaped.
+
+
+
+ Gets whether the "default_value" field is set
+
+
+ Clears the value of the "default_value" field
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ If set, gives the index of a oneof in the containing type's oneof_decl
+ list. This field is a member of that oneof.
+
+
+
+ Gets whether the "oneof_index" field is set
+
+
+ Clears the value of the "oneof_index" field
+
+
+ Field number for the "json_name" field.
+
+
+
+ JSON name of this field. The value is set by protocol compiler. If the
+ user has set a "json_name" option on this field, that option's value
+ will be used. Otherwise, it's deduced from the field's name by converting
+ it to camelCase.
+
+
+
+ Gets whether the "json_name" field is set
+
+
+ Clears the value of the "json_name" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "proto3_optional" field.
+
+
+
+ If true, this is a proto3 "optional". When a proto3 field is optional, it
+ tracks presence regardless of field type.
+
+ When proto3_optional is true, this field must be belong to a oneof to
+ signal to old proto3 clients that presence is tracked for this field. This
+ oneof is known as a "synthetic" oneof, and this field must be its sole
+ member (each proto3 optional field gets its own synthetic oneof). Synthetic
+ oneofs exist in the descriptor only, and do not generate any API. Synthetic
+ oneofs must be ordered after all "real" oneofs.
+
+ For message fields, proto3_optional doesn't create any semantic change,
+ since non-repeated message fields always track presence. However it still
+ indicates the semantic detail of whether the user wrote "optional" or not.
+ This can be useful for round-tripping the .proto file. For consistency we
+ give message fields a synthetic oneof also, even though it is not required
+ to track presence. This is especially important because the parser can't
+ tell if a field is a message or an enum, so it must always create a
+ synthetic oneof.
+
+ Proto2 optional fields do not set this flag, because they already indicate
+ optional with `LABEL_OPTIONAL`.
+
+
+
+ Gets whether the "proto3_optional" field is set
+
+
+ Clears the value of the "proto3_optional" field
+
+
+ Container for nested types declared in the FieldDescriptorProto message type.
+
+
+
+ 0 is reserved for errors.
+ Order is weird for historical reasons.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
+ negative values are likely.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
+ negative values are likely.
+
+
+
+
+ Tag-delimited aggregate.
+ Group type is deprecated and not supported in proto3. However, Proto3
+ implementations should still be able to parse the group wire format and
+ treat group fields as unknown fields.
+
+
+
+
+ Length-delimited aggregate.
+
+
+
+
+ New in version 2.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ 0 is reserved for errors
+
+
+
+
+ Describes a oneof.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes an enum type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+
+ Range of reserved numeric values. Reserved numeric values may not be used
+ by enum values in the same enum declaration. Reserved ranges may not
+ overlap.
+
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved enum value names, which may not be reused. A given name may only
+ be reserved once.
+
+
+
+ Container for nested types declared in the EnumDescriptorProto message type.
+
+
+
+ Range of reserved numeric values. Reserved values may not be used by
+ entries in the same enum. Reserved ranges may not overlap.
+
+ Note that this is distinct from DescriptorProto.ReservedRange in that it
+ is inclusive such that it can appropriately represent the entire int32
+ domain.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Describes a value within an enum.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "method" field.
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a method of a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "input_type" field.
+
+
+
+ Input and output type names. These are resolved in the same way as
+ FieldDescriptorProto.type_name, but must refer to a message type.
+
+
+
+ Gets whether the "input_type" field is set
+
+
+ Clears the value of the "input_type" field
+
+
+ Field number for the "output_type" field.
+
+
+ Gets whether the "output_type" field is set
+
+
+ Clears the value of the "output_type" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "client_streaming" field.
+
+
+
+ Identifies if client streams multiple client messages
+
+
+
+ Gets whether the "client_streaming" field is set
+
+
+ Clears the value of the "client_streaming" field
+
+
+ Field number for the "server_streaming" field.
+
+
+
+ Identifies if server streams multiple server messages
+
+
+
+ Gets whether the "server_streaming" field is set
+
+
+ Clears the value of the "server_streaming" field
+
+
+ Field number for the "java_package" field.
+
+
+
+ Sets the Java package where classes generated from this .proto will be
+ placed. By default, the proto package is used, but this is often
+ inappropriate because proto packages do not normally start with backwards
+ domain names.
+
+
+
+ Gets whether the "java_package" field is set
+
+
+ Clears the value of the "java_package" field
+
+
+ Field number for the "java_outer_classname" field.
+
+
+
+ Controls the name of the wrapper Java class generated for the .proto file.
+ That class will always contain the .proto file's getDescriptor() method as
+ well as any top-level extensions defined in the .proto file.
+ If java_multiple_files is disabled, then all the other classes from the
+ .proto file will be nested inside the single wrapper outer class.
+
+
+
+ Gets whether the "java_outer_classname" field is set
+
+
+ Clears the value of the "java_outer_classname" field
+
+
+ Field number for the "java_multiple_files" field.
+
+
+
+ If enabled, then the Java code generator will generate a separate .java
+ file for each top-level message, enum, and service defined in the .proto
+ file. Thus, these types will *not* be nested inside the wrapper class
+ named by java_outer_classname. However, the wrapper class will still be
+ generated to contain the file's getDescriptor() method as well as any
+ top-level extensions defined in the file.
+
+
+
+ Gets whether the "java_multiple_files" field is set
+
+
+ Clears the value of the "java_multiple_files" field
+
+
+ Field number for the "java_generate_equals_and_hash" field.
+
+
+
+ This option does nothing.
+
+
+
+ Gets whether the "java_generate_equals_and_hash" field is set
+
+
+ Clears the value of the "java_generate_equals_and_hash" field
+
+
+ Field number for the "java_string_check_utf8" field.
+
+
+
+ If set true, then the Java2 code generator will generate code that
+ throws an exception whenever an attempt is made to assign a non-UTF-8
+ byte sequence to a string field.
+ Message reflection will do the same.
+ However, an extension field still accepts non-UTF-8 byte sequences.
+ This option has no effect on when used with the lite runtime.
+
+
+
+ Gets whether the "java_string_check_utf8" field is set
+
+
+ Clears the value of the "java_string_check_utf8" field
+
+
+ Field number for the "optimize_for" field.
+
+
+ Gets whether the "optimize_for" field is set
+
+
+ Clears the value of the "optimize_for" field
+
+
+ Field number for the "go_package" field.
+
+
+
+ Sets the Go package where structs generated from this .proto will be
+ placed. If omitted, the Go package will be derived from the following:
+ - The basename of the package import path, if provided.
+ - Otherwise, the package statement in the .proto file, if present.
+ - Otherwise, the basename of the .proto file, without extension.
+
+
+
+ Gets whether the "go_package" field is set
+
+
+ Clears the value of the "go_package" field
+
+
+ Field number for the "cc_generic_services" field.
+
+
+
+ Should generic services be generated in each language? "Generic" services
+ are not specific to any particular RPC system. They are generated by the
+ main code generators in each language (without additional plugins).
+ Generic services were the only kind of service generation supported by
+ early versions of google.protobuf.
+
+ Generic services are now considered deprecated in favor of using plugins
+ that generate code specific to your particular RPC system. Therefore,
+ these default to false. Old code which depends on generic services should
+ explicitly set them to true.
+
+
+
+ Gets whether the "cc_generic_services" field is set
+
+
+ Clears the value of the "cc_generic_services" field
+
+
+ Field number for the "java_generic_services" field.
+
+
+ Gets whether the "java_generic_services" field is set
+
+
+ Clears the value of the "java_generic_services" field
+
+
+ Field number for the "py_generic_services" field.
+
+
+ Gets whether the "py_generic_services" field is set
+
+
+ Clears the value of the "py_generic_services" field
+
+
+ Field number for the "php_generic_services" field.
+
+
+ Gets whether the "php_generic_services" field is set
+
+
+ Clears the value of the "php_generic_services" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this file deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for everything in the file, or it will be completely ignored; in the very
+ least, this is a formalization for deprecating files.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "cc_enable_arenas" field.
+
+
+
+ Enables the use of arenas for the proto messages in this file. This applies
+ only to generated classes for C++.
+
+
+
+ Gets whether the "cc_enable_arenas" field is set
+
+
+ Clears the value of the "cc_enable_arenas" field
+
+
+ Field number for the "objc_class_prefix" field.
+
+
+
+ Sets the objective c class prefix which is prepended to all objective c
+ generated classes from this .proto. There is no default.
+
+
+
+ Gets whether the "objc_class_prefix" field is set
+
+
+ Clears the value of the "objc_class_prefix" field
+
+
+ Field number for the "csharp_namespace" field.
+
+
+
+ Namespace for generated classes; defaults to the package.
+
+
+
+ Gets whether the "csharp_namespace" field is set
+
+
+ Clears the value of the "csharp_namespace" field
+
+
+ Field number for the "swift_prefix" field.
+
+
+
+ By default Swift generators will take the proto package and CamelCase it
+ replacing '.' with underscore and use that to prefix the types/symbols
+ defined. When this options is provided, they will use this value instead
+ to prefix the types/symbols defined.
+
+
+
+ Gets whether the "swift_prefix" field is set
+
+
+ Clears the value of the "swift_prefix" field
+
+
+ Field number for the "php_class_prefix" field.
+
+
+
+ Sets the php class prefix which is prepended to all php generated classes
+ from this .proto. Default is empty.
+
+
+
+ Gets whether the "php_class_prefix" field is set
+
+
+ Clears the value of the "php_class_prefix" field
+
+
+ Field number for the "php_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated classes. Default
+ is empty. When this option is empty, the package name will be used for
+ determining the namespace.
+
+
+
+ Gets whether the "php_namespace" field is set
+
+
+ Clears the value of the "php_namespace" field
+
+
+ Field number for the "php_metadata_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated metadata classes.
+ Default is empty. When this option is empty, the proto file name will be
+ used for determining the namespace.
+
+
+
+ Gets whether the "php_metadata_namespace" field is set
+
+
+ Clears the value of the "php_metadata_namespace" field
+
+
+ Field number for the "ruby_package" field.
+
+
+
+ Use this option to change the package of ruby generated classes. Default
+ is empty. When this option is not set, the package name will be used for
+ determining the ruby package.
+
+
+
+ Gets whether the "ruby_package" field is set
+
+
+ Clears the value of the "ruby_package" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here.
+ See the documentation for the "Options" section above.
+
+
+
+ Container for nested types declared in the FileOptions message type.
+
+
+
+ Generated classes can be optimized for speed or code size.
+
+
+
+
+ Generate complete code for parsing, serialization,
+
+
+
+
+ etc.
+
+
+
+
+ Generate code using MessageLite and the lite runtime.
+
+
+
+ Field number for the "message_set_wire_format" field.
+
+
+
+ Set true to use the old proto1 MessageSet wire format for extensions.
+ This is provided for backwards-compatibility with the MessageSet wire
+ format. You should not use this for any other reason: It's less
+ efficient, has fewer features, and is more complicated.
+
+ The message must be defined exactly as follows:
+ message Foo {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+ }
+ Note that the message cannot have any defined fields; MessageSets only
+ have extensions.
+
+ All extensions of your type must be singular messages; e.g. they cannot
+ be int32s, enums, or repeated messages.
+
+ Because this is an option, the above two restrictions are not enforced by
+ the protocol compiler.
+
+
+
+ Gets whether the "message_set_wire_format" field is set
+
+
+ Clears the value of the "message_set_wire_format" field
+
+
+ Field number for the "no_standard_descriptor_accessor" field.
+
+
+
+ Disables the generation of the standard "descriptor()" accessor, which can
+ conflict with a field of the same name. This is meant to make migration
+ from proto1 easier; new code should avoid fields named "descriptor".
+
+
+
+ Gets whether the "no_standard_descriptor_accessor" field is set
+
+
+ Clears the value of the "no_standard_descriptor_accessor" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this message deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the message, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating messages.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "map_entry" field.
+
+
+
+ Whether the message is an automatically generated map entry type for the
+ maps field.
+
+ For maps fields:
+ map<KeyType, ValueType> map_field = 1;
+ The parsed descriptor looks like:
+ message MapFieldEntry {
+ option map_entry = true;
+ optional KeyType key = 1;
+ optional ValueType value = 2;
+ }
+ repeated MapFieldEntry map_field = 1;
+
+ Implementations may choose not to generate the map_entry=true message, but
+ use a native map in the target language to hold the keys and values.
+ The reflection APIs in such implementations still need to work as
+ if the field is a repeated message field.
+
+ NOTE: Do not set the option in .proto files. Always use the maps syntax
+ instead. The option should only be implicitly set by the proto compiler
+ parser.
+
+
+
+ Gets whether the "map_entry" field is set
+
+
+ Clears the value of the "map_entry" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "ctype" field.
+
+
+
+ The ctype option instructs the C++ code generator to use a different
+ representation of the field than it normally would. See the specific
+ options below. This option is not yet implemented in the open source
+ release -- sorry, we'll try to include it in a future version!
+
+
+
+ Gets whether the "ctype" field is set
+
+
+ Clears the value of the "ctype" field
+
+
+ Field number for the "packed" field.
+
+
+
+ The packed option can be enabled for repeated primitive fields to enable
+ a more efficient representation on the wire. Rather than repeatedly
+ writing the tag and type for each element, the entire array is encoded as
+ a single length-delimited blob. In proto3, only explicit setting it to
+ false will avoid using packed encoding.
+
+
+
+ Gets whether the "packed" field is set
+
+
+ Clears the value of the "packed" field
+
+
+ Field number for the "jstype" field.
+
+
+
+ The jstype option determines the JavaScript type used for values of the
+ field. The option is permitted only for 64 bit integral and fixed types
+ (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
+ is represented as JavaScript string, which avoids loss of precision that
+ can happen when a large value is converted to a floating point JavaScript.
+ Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
+ use the JavaScript "number" type. The behavior of the default option
+ JS_NORMAL is implementation dependent.
+
+ This option is an enum to permit additional types to be added, e.g.
+ goog.math.Integer.
+
+
+
+ Gets whether the "jstype" field is set
+
+
+ Clears the value of the "jstype" field
+
+
+ Field number for the "lazy" field.
+
+
+
+ Should this field be parsed lazily? Lazy applies only to message-type
+ fields. It means that when the outer message is initially parsed, the
+ inner message's contents will not be parsed but instead stored in encoded
+ form. The inner message will actually be parsed when it is first accessed.
+
+ This is only a hint. Implementations are free to choose whether to use
+ eager or lazy parsing regardless of the value of this option. However,
+ setting this option true suggests that the protocol author believes that
+ using lazy parsing on this field is worth the additional bookkeeping
+ overhead typically needed to implement it.
+
+ This option does not affect the public interface of any generated code;
+ all method signatures remain the same. Furthermore, thread-safety of the
+ interface is not affected by this option; const methods remain safe to
+ call from multiple threads concurrently, while non-const methods continue
+ to require exclusive access.
+
+ Note that implementations may choose not to check required fields within
+ a lazy sub-message. That is, calling IsInitialized() on the outer message
+ may return true even if the inner message has missing required fields.
+ This is necessary because otherwise the inner message would have to be
+ parsed in order to perform the check, defeating the purpose of lazy
+ parsing. An implementation which chooses not to check required fields
+ must be consistent about it. That is, for any particular sub-message, the
+ implementation must either *always* check its required fields, or *never*
+ check its required fields, regardless of whether or not the message has
+ been parsed.
+
+ As of 2021, lazy does no correctness checks on the byte stream during
+ parsing. This may lead to crashes if and when an invalid byte stream is
+ finally parsed upon access.
+
+ TODO(b/211906113): Enable validation on lazy fields.
+
+
+
+ Gets whether the "lazy" field is set
+
+
+ Clears the value of the "lazy" field
+
+
+ Field number for the "unverified_lazy" field.
+
+
+
+ unverified_lazy does no correctness checks on the byte stream. This should
+ only be used where lazy with verification is prohibitive for performance
+ reasons.
+
+
+
+ Gets whether the "unverified_lazy" field is set
+
+
+ Clears the value of the "unverified_lazy" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this field deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for accessors, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating fields.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "weak" field.
+
+
+
+ For Google-internal migration only. Do not use.
+
+
+
+ Gets whether the "weak" field is set
+
+
+ Clears the value of the "weak" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the FieldOptions message type.
+
+
+
+ Default mode.
+
+
+
+
+ Use the default type.
+
+
+
+
+ Use JavaScript strings.
+
+
+
+
+ Use JavaScript numbers.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "allow_alias" field.
+
+
+
+ Set this option to true to allow mapping different tag names to the same
+ value.
+
+
+
+ Gets whether the "allow_alias" field is set
+
+
+ Clears the value of the "allow_alias" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating enums.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum value deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum value, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating enum values.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this service deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the service, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating services.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this method deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the method, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating methods.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "idempotency_level" field.
+
+
+ Gets whether the "idempotency_level" field is set
+
+
+ Clears the value of the "idempotency_level" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the MethodOptions message type.
+
+
+
+ Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
+ or neither? HTTP based RPC implementation may choose GET verb for safe
+ methods, and PUT verb for idempotent methods instead of the default POST.
+
+
+
+
+ implies idempotent
+
+
+
+
+ idempotent, but may have side effects
+
+
+
+
+ A message representing a option the parser does not recognize. This only
+ appears in options protos created by the compiler::Parser class.
+ DescriptorPool resolves these when building Descriptor objects. Therefore,
+ options protos in descriptor objects (e.g. returned by Descriptor::options(),
+ or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
+ in them.
+
+
+
+ Field number for the "name" field.
+
+
+ Field number for the "identifier_value" field.
+
+
+
+ The value of the uninterpreted option, in whatever type the tokenizer
+ identified it as during parsing. Exactly one of these should be set.
+
+
+
+ Gets whether the "identifier_value" field is set
+
+
+ Clears the value of the "identifier_value" field
+
+
+ Field number for the "positive_int_value" field.
+
+
+ Gets whether the "positive_int_value" field is set
+
+
+ Clears the value of the "positive_int_value" field
+
+
+ Field number for the "negative_int_value" field.
+
+
+ Gets whether the "negative_int_value" field is set
+
+
+ Clears the value of the "negative_int_value" field
+
+
+ Field number for the "double_value" field.
+
+
+ Gets whether the "double_value" field is set
+
+
+ Clears the value of the "double_value" field
+
+
+ Field number for the "string_value" field.
+
+
+ Gets whether the "string_value" field is set
+
+
+ Clears the value of the "string_value" field
+
+
+ Field number for the "aggregate_value" field.
+
+
+ Gets whether the "aggregate_value" field is set
+
+
+ Clears the value of the "aggregate_value" field
+
+
+ Container for nested types declared in the UninterpretedOption message type.
+
+
+
+ The name of the uninterpreted option. Each string represents a segment in
+ a dot-separated name. is_extension is true iff a segment represents an
+ extension (denoted with parentheses in options specs in .proto files).
+ E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
+ "foo.(bar.baz).moo".
+
+
+
+ Field number for the "name_part" field.
+
+
+ Gets whether the "name_part" field is set
+
+
+ Clears the value of the "name_part" field
+
+
+ Field number for the "is_extension" field.
+
+
+ Gets whether the "is_extension" field is set
+
+
+ Clears the value of the "is_extension" field
+
+
+
+ Encapsulates information about the original source file from which a
+ FileDescriptorProto was generated.
+
+
+
+ Field number for the "location" field.
+
+
+
+ A Location identifies a piece of source code in a .proto file which
+ corresponds to a particular definition. This information is intended
+ to be useful to IDEs, code indexers, documentation generators, and similar
+ tools.
+
+ For example, say we have a file like:
+ message Foo {
+ optional string foo = 1;
+ }
+ Let's look at just the field definition:
+ optional string foo = 1;
+ ^ ^^ ^^ ^ ^^^
+ a bc de f ghi
+ We have the following locations:
+ span path represents
+ [a,i) [ 4, 0, 2, 0 ] The whole field definition.
+ [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
+ [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
+ [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
+ [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
+
+ Notes:
+ - A location may refer to a repeated field itself (i.e. not to any
+ particular index within it). This is used whenever a set of elements are
+ logically enclosed in a single code segment. For example, an entire
+ extend block (possibly containing multiple extension definitions) will
+ have an outer location whose path refers to the "extensions" repeated
+ field without an index.
+ - Multiple locations may have the same path. This happens when a single
+ logical declaration is spread out across multiple places. The most
+ obvious example is the "extend" block again -- there may be multiple
+ extend blocks in the same scope, each of which will have the same path.
+ - A location's span is not always a subset of its parent's span. For
+ example, the "extendee" of an extension declaration appears at the
+ beginning of the "extend" block and is shared by all extensions within
+ the block.
+ - Just because a location's span is a subset of some other location's span
+ does not mean that it is a descendant. For example, a "group" defines
+ both a type and a field in a single declaration. Thus, the locations
+ corresponding to the type and field and their components will overlap.
+ - Code which tries to interpret locations should probably be designed to
+ ignore those that it doesn't understand, as more types of locations could
+ be recorded in the future.
+
+
+
+ Container for nested types declared in the SourceCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies which part of the FileDescriptorProto was defined at this
+ location.
+
+ Each element is a field number or an index. They form a path from
+ the root FileDescriptorProto to the place where the definition occurs.
+ For example, this path:
+ [ 4, 3, 2, 7, 1 ]
+ refers to:
+ file.message_type(3) // 4, 3
+ .field(7) // 2, 7
+ .name() // 1
+ This is because FileDescriptorProto.message_type has field number 4:
+ repeated DescriptorProto message_type = 4;
+ and DescriptorProto.field has field number 2:
+ repeated FieldDescriptorProto field = 2;
+ and FieldDescriptorProto.name has field number 1:
+ optional string name = 1;
+
+ Thus, the above path gives the location of a field name. If we removed
+ the last element:
+ [ 4, 3, 2, 7 ]
+ this path refers to the whole field declaration (from the beginning
+ of the label to the terminating semicolon).
+
+
+
+ Field number for the "span" field.
+
+
+
+ Always has exactly three or four elements: start line, start column,
+ end line (optional, otherwise assumed same as start line), end column.
+ These are packed into a single field for efficiency. Note that line
+ and column numbers are zero-based -- typically you will want to add
+ 1 to each before displaying to a user.
+
+
+
+ Field number for the "leading_comments" field.
+
+
+
+ If this SourceCodeInfo represents a complete declaration, these are any
+ comments appearing before and after the declaration which appear to be
+ attached to the declaration.
+
+ A series of line comments appearing on consecutive lines, with no other
+ tokens appearing on those lines, will be treated as a single comment.
+
+ leading_detached_comments will keep paragraphs of comments that appear
+ before (but not connected to) the current element. Each paragraph,
+ separated by empty lines, will be one comment element in the repeated
+ field.
+
+ Only the comment content is provided; comment markers (e.g. //) are
+ stripped out. For block comments, leading whitespace and an asterisk
+ will be stripped from the beginning of each line other than the first.
+ Newlines are included in the output.
+
+ Examples:
+
+ optional int32 foo = 1; // Comment attached to foo.
+ // Comment attached to bar.
+ optional int32 bar = 2;
+
+ optional string baz = 3;
+ // Comment attached to baz.
+ // Another line attached to baz.
+
+ // Comment attached to moo.
+ //
+ // Another line attached to moo.
+ optional double moo = 4;
+
+ // Detached comment for corge. This is not leading or trailing comments
+ // to moo or corge because there are blank lines separating it from
+ // both.
+
+ // Detached comment for corge paragraph 2.
+
+ optional string corge = 5;
+ /* Block comment attached
+ * to corge. Leading asterisks
+ * will be removed. */
+ /* Block comment attached to
+ * grault. */
+ optional int32 grault = 6;
+
+ // ignored detached comments.
+
+
+
+ Gets whether the "leading_comments" field is set
+
+
+ Clears the value of the "leading_comments" field
+
+
+ Field number for the "trailing_comments" field.
+
+
+ Gets whether the "trailing_comments" field is set
+
+
+ Clears the value of the "trailing_comments" field
+
+
+ Field number for the "leading_detached_comments" field.
+
+
+
+ Describes the relationship between generated code and its original source
+ file. A GeneratedCodeInfo message is associated with only one generated
+ source file, but may contain references to different source .proto files.
+
+
+
+ Field number for the "annotation" field.
+
+
+
+ An Annotation connects some span of text in generated code to an element
+ of its generating .proto file.
+
+
+
+ Container for nested types declared in the GeneratedCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies the element in the original source .proto file. This field
+ is formatted the same as SourceCodeInfo.Location.path.
+
+
+
+ Field number for the "source_file" field.
+
+
+
+ Identifies the filesystem path to the original source .proto.
+
+
+
+ Gets whether the "source_file" field is set
+
+
+ Clears the value of the "source_file" field
+
+
+ Field number for the "begin" field.
+
+
+
+ Identifies the starting offset in bytes in the generated code
+ that relates to the identified object.
+
+
+
+ Gets whether the "begin" field is set
+
+
+ Clears the value of the "begin" field
+
+
+ Field number for the "end" field.
+
+
+
+ Identifies the ending offset in bytes in the generated code that
+ relates to the identified offset. The end offset should be one past
+ the last relevant byte (so the length of the text = end - begin).
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Base class for nearly all descriptors, providing common functionality.
+
+
+
+
+ The index of this descriptor within its parent descriptor.
+
+
+ This returns the index of this descriptor within its parent, for
+ this descriptor's type. (There can be duplicate values for different
+ types, e.g. one enum type with index 0 and one message type with index 0.)
+
+
+
+
+ Returns the name of the entity (field, message etc) being described.
+
+
+
+
+ The fully qualified name of the descriptor's target.
+
+
+
+
+ The file this descriptor was declared in.
+
+
+
+
+ The declaration information about the descriptor, or null if no declaration information
+ is available for this descriptor.
+
+
+ This information is typically only available for dynamically loaded descriptors,
+ for example within a protoc plugin where the full descriptors, including source info,
+ are passed to the code by protoc.
+
+
+
+
+ Retrieves the list of nested descriptors corresponding to the given field number, if any.
+ If the field is unknown or not a nested descriptor list, return null to terminate the search.
+ The default implementation returns null.
+
+
+
+
+ Provides additional information about the declaration of a descriptor,
+ such as source location and comments.
+
+
+
+
+ The descriptor this declaration relates to.
+
+
+
+
+ The start line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The start column of the declaration within the source file. This value is 1-based.
+
+
+
+
+ // The end line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The end column of the declaration within the source file. This value is 1-based, and
+ exclusive. (The final character of the declaration is on the column before this value.)
+
+
+
+
+ Comments appearing before the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing after the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing before the declaration, but separated from it by blank
+ lines. Each string represents a newline-separated paragraph of comments.
+ Leading whitespace and the comment marker ("//") are removed from each line.
+ The list is never null, but may be empty. Likewise each element is never null, but may be empty.
+
+
+
+
+ Contains lookup tables containing all the descriptors defined in a particular file.
+
+
+
+
+ Finds a symbol of the given name within the pool.
+
+ The type of symbol to look for
+ Fully-qualified name to look up
+ The symbol with the given name and type,
+ or null if the symbol doesn't exist or has the wrong type
+
+
+
+ Adds a package to the symbol tables. If a package by the same name
+ already exists, that is fine, but if some other kind of symbol
+ exists under the same name, an exception is thrown. If the package
+ has multiple components, this also adds the parent package(s).
+
+
+
+
+ Adds a symbol to the symbol table.
+
+ The symbol already existed
+ in the symbol table.
+
+
+
+ Verifies that the descriptor's name is valid (i.e. it contains
+ only letters, digits and underscores, and does not start with a digit).
+
+
+
+
+
+ Returns the field with the given number in the given descriptor,
+ or null if it can't be found.
+
+
+
+
+ Adds a field to the fieldsByNumber table.
+
+ A field with the same
+ containing type and number already exists.
+
+
+
+ Adds an enum value to the enumValuesByNumber table. If an enum value
+ with the same type and number already exists, this method does nothing.
+ (This is allowed; the first value defined with the number takes precedence.)
+
+
+
+
+ Looks up a descriptor by name, relative to some other descriptor.
+ The name may be fully-qualified (with a leading '.'), partially-qualified,
+ or unqualified. C++-like name lookup semantics are used to search for the
+ matching descriptor.
+
+
+ This isn't heavily optimized, but it's only used during cross linking anyway.
+ If it starts being used more widely, we should look at performance more carefully.
+
+
+
+
+ Internal class containing utility methods when working with descriptors.
+
+
+
+
+ Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
+ arrays.
+
+
+
+
+ Converts the given array into a read-only list, applying the specified conversion to
+ each input element.
+
+
+
+
+ Thrown when building descriptors fails because the source DescriptorProtos
+ are not valid.
+
+
+
+
+ The full name of the descriptor where the error occurred.
+
+
+
+
+ A human-readable description of the error. (The Message property
+ is made up of the descriptor's name and this description.)
+
+
+
+
+ Descriptor for an enum type in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ The CLR type for this enum. For generated code, this will be a CLR enum type.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ An unmodifiable list of defined value descriptors for this enum.
+
+
+
+
+ Finds an enum value by number. If multiple enum values have the
+ same number, this returns the first defined value with that number.
+ If there is no value for the given number, this returns null.
+
+
+
+
+ Finds an enum value by name.
+
+ The unqualified name of the value (e.g. "FOO").
+ The value's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this enum.
+
+
+
+
+ The EnumOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum option for this descriptor
+
+
+
+
+ Gets a repeated value enum option for this descriptor
+
+
+
+
+ Descriptor for a single enum value within an enum in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum value.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum value descriptor.
+
+
+
+ Returns the name of the enum value described by this object.
+
+
+
+
+ Returns the number associated with this enum value.
+
+
+
+
+ Returns the enum descriptor that this value is part of.
+
+
+
+
+ The (possibly empty) set of custom options for this enum value.
+
+
+
+
+ The EnumValueOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum value option for this descriptor
+
+
+
+
+ Gets a repeated value enum value option for this descriptor
+
+
+
+
+ A collection to simplify retrieving the descriptors of extensions in a descriptor for a message
+
+
+
+
+ Returns a readonly list of all the extensions defined in this type in
+ the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in ascending field order
+
+
+
+
+ Base class for field accessors.
+
+
+
+
+ Descriptor for a field or extension within a message in a .proto file.
+
+
+
+
+ Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension.
+
+
+
+
+ Returns the oneof containing this field, or null if it is not part of a oneof.
+
+
+
+
+ Returns the oneof containing this field if it's a "real" oneof, or null if either this
+ field is not part of a oneof, or the oneof is synthetic.
+
+
+
+
+ The effective JSON name for this field. This is usually the lower-camel-cased form of the field name,
+ but can be overridden using the json_name option in the .proto file.
+
+
+
+
+ The name of the property in the ContainingType.ClrType class.
+
+
+
+
+ Indicates whether this field supports presence, either implicitly (e.g. due to it being a message
+ type field) or explicitly via Has/Clear members. If this returns true, it is safe to call
+ and
+ on this field's accessor with a suitable message.
+
+
+
+
+ Returns a clone of the underlying describing this field.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this field descriptor.
+
+
+
+ An extension identifier for this field, or null if this field isn't an extension.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns the accessor for this field.
+
+
+
+ While a describes the field, it does not provide
+ any way of obtaining or changing the value of the field within a specific message;
+ that is the responsibility of the accessor.
+
+
+ In descriptors for generated code, the value returned by this property will be non-null for all
+ regular fields. However, if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, and the value of the map field itself is represented by a dictionary in the
+ reflection API. There are never instances of those "hidden" messages, so no accessor is provided
+ and this property will return null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+
+
+ Maps a field type as included in the .proto file to a FieldType.
+
+
+
+
+ Returns true if this field is a repeated field; false otherwise.
+
+
+
+
+ Returns true if this field is a required field; false otherwise.
+
+
+
+
+ Returns true if this field is a map field; false otherwise.
+
+
+
+
+ Returns true if this field is a packed, repeated field; false otherwise.
+
+
+
+
+ Returns true if this field extends another message type; false otherwise.
+
+
+
+
+ Returns the type of the field.
+
+
+
+
+ Returns the field number declared in the proto file.
+
+
+
+
+ Compares this descriptor with another one, ordering in "canonical" order
+ which simply means ascending order by field number.
+ must be a field of the same type, i.e. the of
+ both fields must be the same.
+
+
+
+
+ For enum fields, returns the field's type.
+
+
+
+
+ For embedded message and group fields, returns the field's type.
+
+
+
+
+ For extension fields, returns the extended type
+
+
+
+
+ The (possibly empty) set of custom options for this field.
+
+
+
+
+ The FieldOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value field option for this descriptor
+
+
+
+
+ Gets a repeated value field option for this descriptor
+
+
+
+
+ Look up and cross-link all field types etc.
+
+
+
+
+ Enumeration of all the possible field types.
+
+
+
+
+ The double field type.
+
+
+
+
+ The float field type.
+
+
+
+
+ The int64 field type.
+
+
+
+
+ The uint64 field type.
+
+
+
+
+ The int32 field type.
+
+
+
+
+ The fixed64 field type.
+
+
+
+
+ The fixed32 field type.
+
+
+
+
+ The bool field type.
+
+
+
+
+ The string field type.
+
+
+
+
+ The field type used for groups.
+
+
+
+
+ The field type used for message fields.
+
+
+
+
+ The bytes field type.
+
+
+
+
+ The uint32 field type.
+
+
+
+
+ The sfixed32 field type.
+
+
+
+
+ The sfixed64 field type.
+
+
+
+
+ The sint32 field type.
+
+
+
+
+ The sint64 field type.
+
+
+
+
+ The field type used for enum fields.
+
+
+
+
+ The syntax of a .proto file
+
+
+
+
+ Proto2 syntax
+
+
+
+
+ Proto3 syntax
+
+
+
+
+ An unknown declared syntax
+
+
+
+
+ Describes a .proto file, including everything defined within.
+ IDescriptor is implemented such that the File property returns this descriptor,
+ and the FullName is the same as the Name.
+
+
+
+
+ Computes the full name of a descriptor within this file, with an optional parent message.
+
+
+
+
+ Extracts public dependencies from direct dependencies. This is a static method despite its
+ first parameter, as the value we're in the middle of constructing is only used for exceptions.
+
+
+
+
+ The descriptor in its protocol message representation.
+
+
+
+
+ Returns a clone of the underlying describing this file.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this file descriptor.
+
+
+
+ The syntax of the file
+
+
+
+
+ The file name.
+
+
+
+
+ The package as declared in the .proto file. This may or may not
+ be equivalent to the .NET namespace of the generated classes.
+
+
+
+
+ Unmodifiable list of top-level message types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level enum types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level services declared in this file.
+
+
+
+
+ Unmodifiable list of top-level extensions declared in this file.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if this descriptor was generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ Unmodifiable list of this file's dependencies (imports).
+
+
+
+
+ Unmodifiable list of this file's public dependencies (public imports).
+
+
+
+
+ The original serialized binary form of this descriptor.
+
+
+
+
+ Implementation of IDescriptor.FullName - just returns the same as Name.
+
+
+
+
+ Implementation of IDescriptor.File - just returns this descriptor.
+
+
+
+
+ Pool containing symbol descriptors.
+
+
+
+
+ Finds a type (message, enum, service or extension) in the file by name. Does not find nested types.
+
+ The unqualified type name to look for.
+ The type of descriptor to look for
+ The type's descriptor, or null if not found.
+
+
+
+ Builds a FileDescriptor from its protocol buffer representation.
+
+ The original serialized descriptor data.
+ We have only limited proto2 support, so serializing FileDescriptorProto
+ would not necessarily give us this.
+ The protocol message form of the FileDescriptor.
+ FileDescriptors corresponding to all of the
+ file's dependencies, in the exact order listed in the .proto file. May be null,
+ in which case it is treated as an empty array.
+ Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).
+ Details about generated code, for the purposes of reflection.
+ If is not
+ a valid descriptor. This can occur for a number of reasons, such as a field
+ having an undefined type or because two messages were defined with the same name.
+
+
+
+ Creates a descriptor for generated code.
+
+
+ This method is only designed to be used by the results of generating code with protoc,
+ which creates the appropriate dependencies etc. It has to be public because the generated
+ code is "external", but should not be called directly by end users.
+
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The extension registry to use when parsing, or null if no extensions are required.
+ The file descriptors corresponding to .
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The file descriptors corresponding to .
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns the file descriptor for descriptor.proto.
+
+
+ This is used for protos which take a direct dependency on descriptor.proto, typically for
+ annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf
+ runtime for reflection purposes. The messages are internal to the runtime as they would require
+ proto2 semantics for full support, but the file descriptor is available via this property. The
+ C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto.
+
+
+ The file descriptor for descriptor.proto.
+
+
+
+
+ The (possibly empty) set of custom options for this file.
+
+
+
+
+ The FileOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value file option for this descriptor
+
+
+
+
+ Gets a repeated value file option for this descriptor
+
+
+
+
+ Performs initialization for the given generic type argument.
+
+
+ This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated)
+ to make calls into the reflection machinery of this library to express an intention to use that type
+ reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers
+ attempting to determine which generic type arguments need to be handled will spot the code path and act
+ accordingly.
+
+ The type to force initialization for.
+
+
+
+ Extra information provided by generated code when initializing a message or file descriptor.
+ These are constructed as required, and are not long-lived. Hand-written code should
+ never need to use this type.
+
+
+
+
+ Irrelevant for file descriptors; the CLR type for the message for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the parser for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the CLR property names (in message descriptor field order)
+ for fields in the message for message descriptors.
+
+
+
+
+ The extensions defined within this file/message descriptor
+
+
+
+
+ Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order)
+ for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo",
+ there will be a "FooCase" property and a "ClearFoo" method.
+
+
+
+
+ The reflection information for types within this file/message descriptor. Elements may be null
+ if there is no corresponding generated type, e.g. for map entry types.
+
+
+
+
+ The CLR types for enums within this file/message descriptor.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums.
+
+
+
+
+ Interface implemented by all descriptor types.
+
+
+
+
+ Returns the name of the entity (message, field etc) being described.
+
+
+
+
+ Returns the fully-qualified name of the entity being described.
+
+
+
+
+ Returns the descriptor for the .proto file that this entity is part of.
+
+
+
+
+ Allows fields to be reflectively accessed.
+
+
+
+
+ Returns the descriptor associated with this field.
+
+
+
+
+ Clears the field in the specified message. (For repeated fields,
+ this clears the list.)
+
+
+
+
+ Fetches the field value. For repeated values, this will be an
+ implementation. For map values, this will be an
+ implementation.
+
+
+
+
+ Indicates whether the field in the specified message is set.
+ For proto3 fields that aren't explicitly optional, this throws an
+
+
+
+
+ Mutator for single "simple" fields only.
+
+
+ Repeated fields are mutated by fetching the value and manipulating it as a list.
+ Map fields are mutated by fetching the value and manipulating it as a dictionary.
+
+ The field is not a "simple" field.
+
+
+
+ Accessor for map fields.
+
+
+
+
+ Describes a message type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this message.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this message descriptor.
+
+
+
+ The CLR type used to represent message instances from this descriptor.
+
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the type returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ A parser for this message type.
+
+
+
+ As is not generic, this cannot be statically
+ typed to the relevant type, but it should produce objects of a type compatible with .
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. No message parser object is created for
+ such messages, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the parser returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ Returns whether this message is one of the "well known types" which may have runtime/protoc support.
+
+
+
+
+ Returns whether this message is one of the "wrapper types" used for fields which represent primitive values
+ with the addition of presence.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ A collection of fields, which can be retrieved by name or field number.
+
+
+
+
+ An unmodifiable list of extensions defined in this message's scope.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if they are declared in a file generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ An unmodifiable list of this message type's nested types.
+
+
+
+
+ An unmodifiable list of this message type's enum types.
+
+
+
+
+ An unmodifiable list of the "oneof" field collections in this message type.
+ All "real" oneofs (where returns false)
+ come before synthetic ones.
+
+
+
+
+ The number of real "oneof" descriptors in this message type. Every element in
+ with an index less than this will have a property value
+ of false; every element with an index greater than or equal to this will have a
+ property value of true.
+
+
+
+
+ Finds a field by field name.
+
+ The unqualified name of the field (e.g. "foo").
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a field by field number.
+
+ The field number within this message type.
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a nested descriptor by name. The is valid for fields, nested
+ message types, oneofs and enums.
+
+ The unqualified name of the descriptor, e.g. "Foo"
+ The descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this message.
+
+
+
+
+ The MessageOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value message option for this descriptor
+
+
+
+
+ Gets a repeated value message option for this descriptor
+
+
+
+
+ Looks up and cross-links all fields and nested types.
+
+
+
+
+ A collection to simplify retrieving the field accessor for a particular field.
+
+
+
+
+ Returns the fields in the message as an immutable list, in the order in which they
+ are declared in the source .proto file.
+
+
+
+
+ Returns the fields in the message as an immutable list, in ascending field number
+ order. Field numbers need not be contiguous, so there is no direct mapping from the
+ index in the list to the field number; to retrieve a field by field number, it is better
+ to use the indexer.
+
+
+
+
+ Returns a read-only dictionary mapping the field names in this message as they're available
+ in the JSON representation to the field descriptors. For example, a field foo_bar
+ in the message would result two entries, one with a key fooBar and one with a key
+ foo_bar, both referring to the same field.
+
+
+
+
+ Retrieves the descriptor for the field with the given number.
+
+ Number of the field to retrieve the descriptor for
+ The accessor for the given field
+ The message descriptor does not contain a field
+ with the given number
+
+
+
+ Retrieves the descriptor for the field with the given name.
+
+ Name of the field to retrieve the descriptor for
+ The descriptor for the given field
+ The message descriptor does not contain a field
+ with the given name
+
+
+
+ Describes a single method in a service.
+
+
+
+
+ The service this method belongs to.
+
+
+
+
+ The method's input type.
+
+
+
+
+ The method's input type.
+
+
+
+
+ Indicates if client streams multiple requests.
+
+
+
+
+ Indicates if server streams multiple responses.
+
+
+
+
+ The (possibly empty) set of custom options for this method.
+
+
+
+
+ The MethodOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value method option for this descriptor
+
+
+
+
+ Gets a repeated value method option for this descriptor
+
+
+
+
+ Returns a clone of the underlying describing this method.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this method descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Reflection access for a oneof, allowing clear and "get case" actions.
+
+
+
+
+ Gets the descriptor for this oneof.
+
+
+ The descriptor of the oneof.
+
+
+
+
+ Clears the oneof in the specified message.
+
+
+
+
+ Indicates which field in the oneof is set for specified message
+
+
+
+
+ Describes a "oneof" field collection in a message type: a set of
+ fields of which at most one can be set in any particular message.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this oneof.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this oneof descriptor.
+
+
+
+ Gets the message type containing this oneof.
+
+
+ The message type containing this oneof.
+
+
+
+
+ Gets the fields within this oneof, in declaration order.
+
+
+ The fields within this oneof, in declaration order.
+
+
+
+
+ Returns true if this oneof is a synthetic oneof containing a proto3 optional field;
+ false otherwise.
+
+
+
+
+ Gets an accessor for reflective access to the values associated with the oneof
+ in a particular message.
+
+
+
+ In descriptors for generated code, the value returned by this property will always be non-null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+ The accessor used for reflective access.
+
+
+
+
+ The (possibly empty) set of custom options for this oneof.
+
+
+
+
+ The OneofOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value oneof option for this descriptor
+
+
+
+
+ Gets a repeated value oneof option for this descriptor
+
+
+
+
+ Specifies the original name (in the .proto file) of a named element,
+ such as an enum value.
+
+
+
+
+ The name of the element in the .proto file.
+
+
+
+
+ If the name is preferred in the .proto file.
+
+
+
+
+ Constructs a new attribute instance for the given name.
+
+ The name of the element in the .proto file.
+
+
+
+ Represents a package in the symbol table. We use PackageDescriptors
+ just as placeholders so that someone cannot define, say, a message type
+ that has the same name as an existing package.
+
+
+
+
+ The methods in this class are somewhat evil, and should not be tampered with lightly.
+ Basically they allow the creation of relatively weakly typed delegates from MethodInfos
+ which are more strongly typed. They do this by creating an appropriate strongly typed
+ delegate from the MethodInfo, and then calling that within an anonymous method.
+ Mind-bending stuff (at least to your humble narrator) but the resulting delegates are
+ very fast compared with calling Invoke later on.
+
+
+
+
+ Empty Type[] used when calling GetProperty to force property instead of indexer fetching.
+
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to object.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to the specified type. The method is expected
+ to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that
+ means we need some extra work to perform conversions.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ type that declares the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+
+
+
+ Creates a reflection helper for the given type arguments. Currently these are created on demand
+ rather than cached; this will be "busy" when initially loading a message's descriptor, but after that
+ they can be garbage collected. We could cache them by type if that proves to be important, but creating
+ an object is pretty cheap.
+
+
+
+
+ Accessor for repeated fields.
+
+
+
+
+ Describes a service type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this service.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this service descriptor.
+
+
+
+ An unmodifiable list of methods in this service.
+
+
+
+
+ Finds a method by name.
+
+ The unqualified name of the method (e.g. "Foo").
+ The method's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this service.
+
+
+
+
+ The ServiceOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value service option for this descriptor
+
+
+
+
+ Gets a repeated value service option for this descriptor
+
+
+
+
+ Accessor for single fields.
+
+
+
+
+ An immutable registry of types which can be looked up by their full name.
+
+
+
+
+ An empty type registry, containing no types.
+
+
+
+
+ Attempts to find a message descriptor by its full name.
+
+ The full name of the message, which is the dot-separated
+ combination of package, containing messages and message name
+ The message descriptor corresponding to or null
+ if there is no such message descriptor.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ All message types within all the specified files are added to the registry, and
+ the dependencies of the specified files are also added, recursively.
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ The specified message descriptors are only used to identify their file descriptors; the returned registry
+ contains all the types within the file descriptors which contain the specified message descriptors (and
+ the dependencies of those files), not just the specified messages.
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls.
+
+
+
+
+ Abstraction for reading from a stream / read only sequence.
+ Parsing from the buffer is a loop of reading from current buffer / refreshing the buffer once done.
+
+
+
+
+ Initialize an instance with a coded input stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a read only sequence.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Represents a single field in an UnknownFieldSet.
+
+ An UnknownField consists of four lists of values. The lists correspond
+ to the four "wire types" used in the protocol buffer binary format.
+ Normally, only one of the four lists will contain any values, since it
+ is impossible to define a valid message type that declares two different
+ types for the same field number. However, the code is designed to allow
+ for the case where the same unknown field number is encountered using
+ multiple different wire types.
+
+
+
+
+
+ Creates a new UnknownField.
+
+
+
+
+ Checks if two unknown field are equal.
+
+
+
+
+ Get the hash code of the unknown field.
+
+
+
+
+ Serializes the field, including the field number, and writes it to
+
+
+ The unknown field number.
+ The write context to write to.
+
+
+
+ Computes the number of bytes required to encode this field, including field
+ number.
+
+
+
+
+ Merge the values in into this field. For each list
+ of values, 's values are append to the ones in this
+ field.
+
+
+
+
+ Returns a new list containing all of the given specified values from
+ both the and lists.
+ If is null and is null or empty,
+ null is returned. Otherwise, either a new list is created (if
+ is null) or the elements of are added to .
+
+
+
+
+ Adds a varint value.
+
+
+
+
+ Adds a fixed32 value.
+
+
+
+
+ Adds a fixed64 value.
+
+
+
+
+ Adds a length-delimited value.
+
+
+
+
+ Adds to the , creating
+ a new list if is null. The list is returned - either
+ the original reference or the new list.
+
+
+
+
+ Used to keep track of fields which were seen when parsing a protocol message
+ but whose field numbers or types are unrecognized. This most frequently
+ occurs when new fields are added to a message type and then messages containing
+ those fields are read by old software that was built before the new types were
+ added.
+
+ Most users will never need to use this class directly.
+
+
+
+
+ Creates a new UnknownFieldSet.
+
+
+
+
+ Checks whether or not the given field number is present in the set.
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Gets the number of bytes required to encode this set.
+
+
+
+
+ Checks if two unknown field sets are equal.
+
+
+
+
+ Gets the unknown field set's hash code.
+
+
+
+
+ Adds a field to the set. If a field with the same number already exists, it
+ is replaced.
+
+
+
+
+ Parse a single field from and merge it
+ into this set.
+
+ The parse context from which to read the field
+ false if the tag is an "end group" tag, true otherwise
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The coded input stream containing the field
+ The merged UnknownFieldSet
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The parse context from which to read the field
+ The merged UnknownFieldSet
+
+
+
+ Merges the fields from into this set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Created a new UnknownFieldSet to if
+ needed and merges the fields from into the first set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Adds a field to the unknown field set. If a field with the same
+ number already exists, the two are merged.
+
+
+
+
+ Clone an unknown field set from .
+
+
+
+
+ Provides a number of unsafe byte operations to be used by advanced applications with high performance
+ requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose
+ the backing buffer of a to the application.
+
+
+
+ The methods in this class should only be called if it is guaranteed that the buffer backing the
+ will never change! Mutation of a can lead to unexpected
+ and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution!
+
+
+ This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In
+ particular, if the bytes value changes out from under a Protocol Buffer:
+
+
+ -
+ serialization may throw
+
+ -
+ serialization may succeed but the wrong bytes may be written out
+
+ -
+ objects that are normally immutable (such as ByteString) are no longer immutable
+
+ -
+ hashCode may be incorrect
+
+
+
+
+
+
+ Constructs a new from the given bytes. The bytes are not copied,
+ and must not be modified while the is in use.
+ This API is experimental and subject to change.
+
+
+
+ Holder for reflection information generated from google/protobuf/any.proto
+
+
+ File descriptor for google/protobuf/any.proto
+
+
+
+ `Any` contains an arbitrary serialized protocol buffer message along with a
+ URL that describes the type of the serialized message.
+
+ Protobuf library provides support to pack/unpack Any values in the form
+ of utility functions or additional generated methods of the Any type.
+
+ Example 1: Pack and unpack a message in C++.
+
+ Foo foo = ...;
+ Any any;
+ any.PackFrom(foo);
+ ...
+ if (any.UnpackTo(&foo)) {
+ ...
+ }
+
+ Example 2: Pack and unpack a message in Java.
+
+ Foo foo = ...;
+ Any any = Any.pack(foo);
+ ...
+ if (any.is(Foo.class)) {
+ foo = any.unpack(Foo.class);
+ }
+
+ Example 3: Pack and unpack a message in Python.
+
+ foo = Foo(...)
+ any = Any()
+ any.Pack(foo)
+ ...
+ if any.Is(Foo.DESCRIPTOR):
+ any.Unpack(foo)
+ ...
+
+ Example 4: Pack and unpack a message in Go
+
+ foo := &pb.Foo{...}
+ any, err := anypb.New(foo)
+ if err != nil {
+ ...
+ }
+ ...
+ foo := &pb.Foo{}
+ if err := any.UnmarshalTo(foo); err != nil {
+ ...
+ }
+
+ The pack methods provided by protobuf library will by default use
+ 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ methods only use the fully qualified type name after the last '/'
+ in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ name "y.z".
+
+ JSON
+
+ The JSON representation of an `Any` value uses the regular
+ representation of the deserialized, embedded message, with an
+ additional field `@type` which contains the type URL. Example:
+
+ package google.profile;
+ message Person {
+ string first_name = 1;
+ string last_name = 2;
+ }
+
+ {
+ "@type": "type.googleapis.com/google.profile.Person",
+ "firstName": <string>,
+ "lastName": <string>
+ }
+
+ If the embedded message type is well-known and has a custom JSON
+ representation, that representation will be embedded adding a field
+ `value` which holds the custom JSON in addition to the `@type`
+ field. Example (for message [google.protobuf.Duration][]):
+
+ {
+ "@type": "type.googleapis.com/google.protobuf.Duration",
+ "value": "1.212s"
+ }
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ A URL/resource name that uniquely identifies the type of the serialized
+ protocol buffer message. This string must contain at least
+ one "/" character. The last segment of the URL's path must represent
+ the fully qualified name of the type (as in
+ `path/google.protobuf.Duration`). The name should be in a canonical form
+ (e.g., leading "." is not accepted).
+
+ In practice, teams usually precompile into the binary all types that they
+ expect it to use in the context of Any. However, for URLs which use the
+ scheme `http`, `https`, or no scheme, one can optionally set up a type
+ server that maps type URLs to message definitions as follows:
+
+ * If no scheme is provided, `https` is assumed.
+ * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ value in binary format, or produce an error.
+ * Applications are allowed to cache lookup results based on the
+ URL, or have them precompiled into a binary to avoid any
+ lookup. Therefore, binary compatibility needs to be preserved
+ on changes to types. (Use versioned type names to manage
+ breaking changes.)
+
+ Note: this functionality is not currently available in the official
+ protobuf release, and it is not used for type URLs beginning with
+ type.googleapis.com.
+
+ Schemes other than `http`, `https` (or the empty scheme) might be
+ used with implementation specific semantics.
+
+
+
+ Field number for the "value" field.
+
+
+
+ Must be a valid serialized protocol buffer of the above specified type.
+
+
+
+
+ Retrieves the type name for a type URL, matching the
+ of the packed message type.
+
+
+
+ This is always just the last part of the URL, after the final slash. No validation of
+ anything before the trailing slash is performed. If the type URL does not include a slash,
+ an empty string is returned rather than an exception being thrown; this won't match any types,
+ and the calling code is probably in a better position to give a meaningful error.
+
+
+ There is no handling of fragments or queries at the moment.
+
+
+ The URL to extract the type name from
+ The type name
+
+
+
+ Returns a bool indictating whether this Any message is of the target message type
+
+ The descriptor of the message type
+ true if the type name matches the descriptor's full name or false otherwise
+
+
+
+ Unpacks the content of this Any message into the target message type,
+ which must match the type URL within this Any message.
+
+ The type of message to unpack the content into.
+ The unpacked message.
+ The target message type doesn't match the type URL in this message
+
+
+
+ Attempts to unpack the content of this Any message into the target message type,
+ if it matches the type URL within this Any message.
+
+ The type of message to attempt to unpack the content into.
+ true if the message was successfully unpacked; false if the type name didn't match
+
+
+
+ Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com".
+
+ The message to pack.
+ An Any message with the content and type URL of .
+
+
+
+ Packs the specified message into an Any message using the specified type URL prefix.
+
+ The message to pack.
+ The prefix for the type URL.
+ An Any message with the content and type URL of .
+
+
+ Holder for reflection information generated from google/protobuf/api.proto
+
+
+ File descriptor for google/protobuf/api.proto
+
+
+
+ Api is a light-weight descriptor for an API Interface.
+
+ Interfaces are also described as "protocol buffer services" in some contexts,
+ such as by the "service" keyword in a .proto file, but they are different
+ from API Services, which represent a concrete implementation of an interface
+ as opposed to simply a description of methods and bindings. They are also
+ sometimes simply referred to as "APIs" in other contexts, such as the name of
+ this message itself. See https://cloud.google.com/apis/design/glossary for
+ detailed terminology.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of this interface, including package name
+ followed by the interface's simple name.
+
+
+
+ Field number for the "methods" field.
+
+
+
+ The methods of this interface, in unspecified order.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the interface.
+
+
+
+ Field number for the "version" field.
+
+
+
+ A version string for this interface. If specified, must have the form
+ `major-version.minor-version`, as in `1.10`. If the minor version is
+ omitted, it defaults to zero. If the entire version field is empty, the
+ major version is derived from the package name, as outlined below. If the
+ field is not empty, the version in the package name will be verified to be
+ consistent with what is provided here.
+
+ The versioning schema uses [semantic
+ versioning](http://semver.org) where the major version number
+ indicates a breaking change and the minor version an additive,
+ non-breaking change. Both version numbers are signals to users
+ what to expect from different versions, and should be carefully
+ chosen based on the product plan.
+
+ The major version is also reflected in the package name of the
+ interface, which must end in `v<major-version>`, as in
+ `google.feature.v1`. For major versions 0 and 1, the suffix can
+ be omitted. Zero major versions must only be used for
+ experimental, non-GA interfaces.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ Source context for the protocol buffer service represented by this
+ message.
+
+
+
+ Field number for the "mixins" field.
+
+
+
+ Included interfaces. See [Mixin][].
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of the service.
+
+
+
+
+ Method represents a method of an API interface.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The simple name of this method.
+
+
+
+ Field number for the "request_type_url" field.
+
+
+
+ A URL of the input message type.
+
+
+
+ Field number for the "request_streaming" field.
+
+
+
+ If true, the request is streamed.
+
+
+
+ Field number for the "response_type_url" field.
+
+
+
+ The URL of the output message type.
+
+
+
+ Field number for the "response_streaming" field.
+
+
+
+ If true, the response is streamed.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the method.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of this method.
+
+
+
+
+ Declares an API Interface to be included in this interface. The including
+ interface must redeclare all the methods from the included interface, but
+ documentation and options are inherited as follows:
+
+ - If after comment and whitespace stripping, the documentation
+ string of the redeclared method is empty, it will be inherited
+ from the original method.
+
+ - Each annotation belonging to the service config (http,
+ visibility) which is not set in the redeclared method will be
+ inherited.
+
+ - If an http annotation is inherited, the path pattern will be
+ modified as follows. Any version prefix will be replaced by the
+ version of the including interface plus the [root][] path if
+ specified.
+
+ Example of a simple mixin:
+
+ package google.acl.v1;
+ service AccessControl {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v1/{resource=**}:getAcl";
+ }
+ }
+
+ package google.storage.v2;
+ service Storage {
+ rpc GetAcl(GetAclRequest) returns (Acl);
+
+ // Get a data record.
+ rpc GetData(GetDataRequest) returns (Data) {
+ option (google.api.http).get = "/v2/{resource=**}";
+ }
+ }
+
+ Example of a mixin configuration:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+
+ The mixin construct implies that all methods in `AccessControl` are
+ also declared with same name and request/response types in
+ `Storage`. A documentation generator or annotation processor will
+ see the effective `Storage.GetAcl` method after inheriting
+ documentation and annotations as follows:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+ Note how the version in the path pattern changed from `v1` to `v2`.
+
+ If the `root` field in the mixin is specified, it should be a
+ relative path under which inherited HTTP paths are placed. Example:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+ root: acls
+
+ This implies the following inherited HTTP annotation:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of the interface which is included.
+
+
+
+ Field number for the "root" field.
+
+
+
+ If non-empty specifies a path under which inherited HTTP paths
+ are rooted.
+
+
+
+ Holder for reflection information generated from google/protobuf/duration.proto
+
+
+ File descriptor for google/protobuf/duration.proto
+
+
+
+ A Duration represents a signed, fixed-length span of time represented
+ as a count of seconds and fractions of seconds at nanosecond
+ resolution. It is independent of any calendar and concepts like "day"
+ or "month". It is related to Timestamp in that the difference between
+ two Timestamp values is a Duration and it can be added or subtracted
+ from a Timestamp. Range is approximately +-10,000 years.
+
+ # Examples
+
+ Example 1: Compute Duration from two Timestamps in pseudo code.
+
+ Timestamp start = ...;
+ Timestamp end = ...;
+ Duration duration = ...;
+
+ duration.seconds = end.seconds - start.seconds;
+ duration.nanos = end.nanos - start.nanos;
+
+ if (duration.seconds < 0 && duration.nanos > 0) {
+ duration.seconds += 1;
+ duration.nanos -= 1000000000;
+ } else if (duration.seconds > 0 && duration.nanos < 0) {
+ duration.seconds -= 1;
+ duration.nanos += 1000000000;
+ }
+
+ Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+
+ Timestamp start = ...;
+ Duration duration = ...;
+ Timestamp end = ...;
+
+ end.seconds = start.seconds + duration.seconds;
+ end.nanos = start.nanos + duration.nanos;
+
+ if (end.nanos < 0) {
+ end.seconds -= 1;
+ end.nanos += 1000000000;
+ } else if (end.nanos >= 1000000000) {
+ end.seconds += 1;
+ end.nanos -= 1000000000;
+ }
+
+ Example 3: Compute Duration from datetime.timedelta in Python.
+
+ td = datetime.timedelta(days=3, minutes=10)
+ duration = Duration()
+ duration.FromTimedelta(td)
+
+ # JSON Mapping
+
+ In JSON format, the Duration type is encoded as a string rather than an
+ object, where the string ends in the suffix "s" (indicating seconds) and
+ is preceded by the number of seconds, with nanoseconds expressed as
+ fractional seconds. For example, 3 seconds with 0 nanoseconds should be
+ encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
+ be expressed in JSON format as "3.000000001s", and 3 seconds and 1
+ microsecond should be expressed in JSON format as "3.000001s".
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Signed seconds of the span of time. Must be from -315,576,000,000
+ to +315,576,000,000 inclusive. Note: these bounds are computed from:
+ 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Signed fractions of a second at nanosecond resolution of the span
+ of time. Durations less than one second are represented with a 0
+ `seconds` field and a positive or negative `nanos` field. For durations
+ of one second or more, a non-zero value for the `nanos` field must be
+ of the same sign as the `seconds` field. Must be from -999,999,999
+ to +999,999,999 inclusive.
+
+
+
+
+ The number of nanoseconds in a second.
+
+
+
+
+ The number of nanoseconds in a BCL tick (as used by and ).
+
+
+
+
+ The maximum permitted number of seconds.
+
+
+
+
+ The minimum permitted number of seconds.
+
+
+
+
+ Converts this to a .
+
+ If the duration is not a precise number of ticks, it is truncated towards 0.
+ The value of this duration, as a TimeSpan.
+ This value isn't a valid normalized duration, as
+ described in the documentation.
+
+
+
+ Converts the given to a .
+
+ The TimeSpan to convert.
+ The value of the given TimeSpan, as a Duration.
+
+
+
+ Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes.
+
+ The duration to negate. Must not be null.
+ The negated value of this duration.
+
+
+
+ Adds the two specified values together.
+
+ The first value to add. Must not be null.
+ The second value to add. Must not be null.
+
+
+
+
+ Subtracts one from another.
+
+ The duration to subtract from. Must not be null.
+ The duration to subtract. Must not be null.
+ The difference between the two specified durations.
+
+
+
+ Creates a duration with the normalized values from the given number of seconds and
+ nanoseconds, conforming with the description in the proto file.
+
+
+
+
+ Converts a duration specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in duration.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which
+ case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well
+ as Duration.
+
+
+
+ Holder for reflection information generated from google/protobuf/empty.proto
+
+
+ File descriptor for google/protobuf/empty.proto
+
+
+
+ A generic empty message that you can re-use to avoid defining duplicated
+ empty messages in your APIs. A typical example is to use it as the request
+ or the response type of an API method. For instance:
+
+ service Foo {
+ rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+ }
+
+
+
+ Holder for reflection information generated from google/protobuf/field_mask.proto
+
+
+ File descriptor for google/protobuf/field_mask.proto
+
+
+
+ `FieldMask` represents a set of symbolic field paths, for example:
+
+ paths: "f.a"
+ paths: "f.b.d"
+
+ Here `f` represents a field in some root message, `a` and `b`
+ fields in the message found in `f`, and `d` a field found in the
+ message in `f.b`.
+
+ Field masks are used to specify a subset of fields that should be
+ returned by a get operation or modified by an update operation.
+ Field masks also have a custom JSON encoding (see below).
+
+ # Field Masks in Projections
+
+ When used in the context of a projection, a response message or
+ sub-message is filtered by the API to only contain those fields as
+ specified in the mask. For example, if the mask in the previous
+ example is applied to a response message as follows:
+
+ f {
+ a : 22
+ b {
+ d : 1
+ x : 2
+ }
+ y : 13
+ }
+ z: 8
+
+ The result will not contain specific values for fields x,y and z
+ (their value will be set to the default, and omitted in proto text
+ output):
+
+ f {
+ a : 22
+ b {
+ d : 1
+ }
+ }
+
+ A repeated field is not allowed except at the last position of a
+ paths string.
+
+ If a FieldMask object is not present in a get operation, the
+ operation applies to all fields (as if a FieldMask of all fields
+ had been specified).
+
+ Note that a field mask does not necessarily apply to the
+ top-level response message. In case of a REST get operation, the
+ field mask applies directly to the response, but in case of a REST
+ list operation, the mask instead applies to each individual message
+ in the returned resource list. In case of a REST custom method,
+ other definitions may be used. Where the mask applies will be
+ clearly documented together with its declaration in the API. In
+ any case, the effect on the returned resource/resources is required
+ behavior for APIs.
+
+ # Field Masks in Update Operations
+
+ A field mask in update operations specifies which fields of the
+ targeted resource are going to be updated. The API is required
+ to only change the values of the fields as specified in the mask
+ and leave the others untouched. If a resource is passed in to
+ describe the updated values, the API ignores the values of all
+ fields not covered by the mask.
+
+ If a repeated field is specified for an update operation, new values will
+ be appended to the existing repeated field in the target resource. Note that
+ a repeated field is only allowed in the last position of a `paths` string.
+
+ If a sub-message is specified in the last position of the field mask for an
+ update operation, then new value will be merged into the existing sub-message
+ in the target resource.
+
+ For example, given the target message:
+
+ f {
+ b {
+ d: 1
+ x: 2
+ }
+ c: [1]
+ }
+
+ And an update message:
+
+ f {
+ b {
+ d: 10
+ }
+ c: [2]
+ }
+
+ then if the field mask is:
+
+ paths: ["f.b", "f.c"]
+
+ then the result will be:
+
+ f {
+ b {
+ d: 10
+ x: 2
+ }
+ c: [1, 2]
+ }
+
+ An implementation may provide options to override this default behavior for
+ repeated and message fields.
+
+ In order to reset a field's value to the default, the field must
+ be in the mask and set to the default value in the provided resource.
+ Hence, in order to reset all fields of a resource, provide a default
+ instance of the resource and set all fields in the mask, or do
+ not provide a mask as described below.
+
+ If a field mask is not present on update, the operation applies to
+ all fields (as if a field mask of all fields has been specified).
+ Note that in the presence of schema evolution, this may mean that
+ fields the client does not know and has therefore not filled into
+ the request will be reset to their default. If this is unwanted
+ behavior, a specific service may require a client to always specify
+ a field mask, producing an error if not.
+
+ As with get operations, the location of the resource which
+ describes the updated values in the request message depends on the
+ operation kind. In any case, the effect of the field mask is
+ required to be honored by the API.
+
+ ## Considerations for HTTP REST
+
+ The HTTP kind of an update operation which uses a field mask must
+ be set to PATCH instead of PUT in order to satisfy HTTP semantics
+ (PUT must only be used for full updates).
+
+ # JSON Encoding of Field Masks
+
+ In JSON, a field mask is encoded as a single string where paths are
+ separated by a comma. Fields name in each path are converted
+ to/from lower-camel naming conventions.
+
+ As an example, consider the following message declarations:
+
+ message Profile {
+ User user = 1;
+ Photo photo = 2;
+ }
+ message User {
+ string display_name = 1;
+ string address = 2;
+ }
+
+ In proto a field mask for `Profile` may look as such:
+
+ mask {
+ paths: "user.display_name"
+ paths: "photo"
+ }
+
+ In JSON, the same mask is represented as below:
+
+ {
+ mask: "user.displayName,photo"
+ }
+
+ # Field Masks and Oneof Fields
+
+ Field masks treat fields in oneofs just as regular fields. Consider the
+ following message:
+
+ message SampleMessage {
+ oneof test_oneof {
+ string name = 4;
+ SubMessage sub_message = 9;
+ }
+ }
+
+ The field mask can be:
+
+ mask {
+ paths: "name"
+ }
+
+ Or:
+
+ mask {
+ paths: "sub_message"
+ }
+
+ Note that oneof type names ("test_oneof" in this case) cannot be used in
+ paths.
+
+ ## Field Mask Verification
+
+ The implementation of any API method which has a FieldMask type field in the
+ request should verify the included field paths, and return an
+ `INVALID_ARGUMENT` error if any path is unmappable.
+
+
+
+ Field number for the "paths" field.
+
+
+
+ The set of field mask paths.
+
+
+
+
+ Converts a field mask specified by paths to a string.
+
+
+ If the value is a normalized duration in the range described in field_mask.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Paths in the field mask
+ Determines the handling of non-normalized values
+ The represented field mask is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Parses from a string to a FieldMask.
+
+
+
+
+ Parses from a string to a FieldMask and validates all field paths.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask for a list of field paths in a certain type.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether the given path is valid for a field mask.
+
+ true if the path is valid; false otherwise
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Checks whether a given field path is valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Converts this FieldMask to its canonical form. In the canonical form of a
+ FieldMask, all field paths are sorted alphabetically and redundant field
+ paths are removed.
+
+
+
+
+ Creates a union of two or more FieldMasks.
+
+
+
+
+ Calculates the intersection of two FieldMasks.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another with the
+ specified merge options.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another.
+
+
+
+
+ Options to customize merging behavior.
+
+
+
+
+ Whether to replace message fields(i.e., discard existing content in
+ destination message fields) when merging.
+ Default behavior is to merge the source message field into the
+ destination message field.
+
+
+
+
+ Whether to replace repeated fields (i.e., discard existing content in
+ destination repeated fields) when merging.
+ Default behavior is to append elements from source repeated field to the
+ destination repeated field.
+
+
+
+
+ Whether to replace primitive (non-repeated and non-message) fields in
+ destination message fields with the source primitive fields (i.e., if the
+ field is set in the source, the value is copied to the
+ destination; if the field is unset in the source, the field is cleared
+ from the destination) when merging.
+
+ Default behavior is to always set the value of the source primitive
+ field to the destination primitive field, and if the source field is
+ unset, the default value of the source field is copied to the
+ destination.
+
+
+
+ Holder for reflection information generated from google/protobuf/source_context.proto
+
+
+ File descriptor for google/protobuf/source_context.proto
+
+
+
+ `SourceContext` represents information about the source of a
+ protobuf element, like the file in which it is defined.
+
+
+
+ Field number for the "file_name" field.
+
+
+
+ The path-qualified name of the .proto file that contained the associated
+ protobuf element. For example: `"google/protobuf/source_context.proto"`.
+
+
+
+ Holder for reflection information generated from google/protobuf/struct.proto
+
+
+ File descriptor for google/protobuf/struct.proto
+
+
+
+ `NullValue` is a singleton enumeration to represent the null value for the
+ `Value` type union.
+
+ The JSON representation for `NullValue` is JSON `null`.
+
+
+
+
+ Null value.
+
+
+
+
+ `Struct` represents a structured data value, consisting of fields
+ which map to dynamically typed values. In some languages, `Struct`
+ might be supported by a native representation. For example, in
+ scripting languages like JS a struct is represented as an
+ object. The details of that representation are described together
+ with the proto support for the language.
+
+ The JSON representation for `Struct` is JSON object.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ Unordered map of dynamically typed values.
+
+
+
+
+ `Value` represents a dynamically typed value which can be either
+ null, a number, a string, a boolean, a recursive struct value, or a
+ list of values. A producer of value is expected to set one of these
+ variants. Absence of any variant indicates an error.
+
+ The JSON representation for `Value` is JSON value.
+
+
+
+ Field number for the "null_value" field.
+
+
+
+ Represents a null value.
+
+
+
+ Field number for the "number_value" field.
+
+
+
+ Represents a double value.
+
+
+
+ Field number for the "string_value" field.
+
+
+
+ Represents a string value.
+
+
+
+ Field number for the "bool_value" field.
+
+
+
+ Represents a boolean value.
+
+
+
+ Field number for the "struct_value" field.
+
+
+
+ Represents a structured value.
+
+
+
+ Field number for the "list_value" field.
+
+
+
+ Represents a repeated `Value`.
+
+
+
+ Enum of possible cases for the "kind" oneof.
+
+
+
+ Convenience method to create a Value message with a string value.
+
+ Value to set for the StringValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a number value.
+
+ Value to set for the NumberValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a Boolean value.
+
+ Value to set for the BoolValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a null initial value.
+
+ A newly-created Value message a null initial value.
+
+
+
+ Convenience method to create a Value message with an initial list of values.
+
+ The values provided are not cloned; the references are copied directly.
+ A newly-created Value message an initial list value.
+
+
+
+ Convenience method to create a Value message with an initial struct value
+
+ The value provided is not cloned; the reference is copied directly.
+ A newly-created Value message an initial struct value.
+
+
+
+ `ListValue` is a wrapper around a repeated field of values.
+
+ The JSON representation for `ListValue` is JSON array.
+
+
+
+ Field number for the "values" field.
+
+
+
+ Repeated field of dynamically typed values.
+
+
+
+
+ Extension methods on BCL time-related types, converting to protobuf types.
+
+
+
+
+ Converts the given to a .
+
+ The date and time to convert to a timestamp.
+ The value has a other than Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts the given to a .
+
+ The time span to convert.
+ The converted duration.
+
+
+ Holder for reflection information generated from google/protobuf/timestamp.proto
+
+
+ File descriptor for google/protobuf/timestamp.proto
+
+
+
+ A Timestamp represents a point in time independent of any time zone or local
+ calendar, encoded as a count of seconds and fractions of seconds at
+ nanosecond resolution. The count is relative to an epoch at UTC midnight on
+ January 1, 1970, in the proleptic Gregorian calendar which extends the
+ Gregorian calendar backwards to year one.
+
+ All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+ second table is needed for interpretation, using a [24-hour linear
+ smear](https://developers.google.com/time/smear).
+
+ The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+ restricting to that range, we ensure that we can convert to and from [RFC
+ 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+
+ # Examples
+
+ Example 1: Compute Timestamp from POSIX `time()`.
+
+ Timestamp timestamp;
+ timestamp.set_seconds(time(NULL));
+ timestamp.set_nanos(0);
+
+ Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+
+ Timestamp timestamp;
+ timestamp.set_seconds(tv.tv_sec);
+ timestamp.set_nanos(tv.tv_usec * 1000);
+
+ Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+
+ // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ Timestamp timestamp;
+ timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+
+ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+
+ long millis = System.currentTimeMillis();
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ .setNanos((int) ((millis % 1000) * 1000000)).build();
+
+ Example 5: Compute Timestamp from Java `Instant.now()`.
+
+ Instant now = Instant.now();
+
+ Timestamp timestamp =
+ Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+ .setNanos(now.getNano()).build();
+
+ Example 6: Compute Timestamp from current time in Python.
+
+ timestamp = Timestamp()
+ timestamp.GetCurrentTime()
+
+ # JSON Mapping
+
+ In JSON format, the Timestamp type is encoded as a string in the
+ [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+ format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+ where {year} is always expressed using four digits while {month}, {day},
+ {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+ seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+ are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+ is required. A proto3 JSON serializer should always use UTC (as indicated by
+ "Z") when printing the Timestamp type and a proto3 JSON parser should be
+ able to accept both UTC and other timezones (as indicated by an offset).
+
+ For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+ 01:30 UTC on January 15, 2017.
+
+ In JavaScript, one can convert a Date object to this format using the
+ standard
+ [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ method. In Python, a standard `datetime.datetime` object can be converted
+ to this format using
+ [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
+ ) to obtain a formatter capable of generating timestamps in this format.
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Represents seconds of UTC time since Unix epoch
+ 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+ 9999-12-31T23:59:59Z inclusive.
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Non-negative fractions of a second at nanosecond resolution. Negative
+ second values with fractions must still have non-negative nanos values
+ that count forward in time. Must be from 0 to 999,999,999
+ inclusive.
+
+
+
+
+ Returns the difference between one and another, as a .
+
+ The timestamp to subtract from. Must not be null.
+ The timestamp to subtract. Must not be null.
+ The difference between the two specified timestamps.
+
+
+
+ Adds a to a , to obtain another Timestamp.
+
+ The timestamp to add the duration to. Must not be null.
+ The duration to add. Must not be null.
+ The result of adding the duration to the timestamp.
+
+
+
+ Subtracts a from a , to obtain another Timestamp.
+
+ The timestamp to subtract the duration from. Must not be null.
+ The duration to subtract.
+ The result of subtracting the duration from the timestamp.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTime will always have a Kind of Utc.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTime.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTimeOffset will always have an Offset of zero.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTimeOffset.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts the specified to a .
+
+
+ The Kind of is not DateTimeKind.Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts a timestamp specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in timestamp.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+ Timestamp to compare
+ an integer indicating whether this timestamp precedes or follows the other
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Returns whether two timestamps are equivalent
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps refer to the same nanosecond
+
+
+
+ Returns whether two timestamps differ
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps differ
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+ Holder for reflection information generated from google/protobuf/type.proto
+
+
+ File descriptor for google/protobuf/type.proto
+
+
+
+ The syntax in which a protocol buffer element is defined.
+
+
+
+
+ Syntax `proto2`.
+
+
+
+
+ Syntax `proto3`.
+
+
+
+
+ A protocol buffer message type.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified message name.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ The list of fields.
+
+
+
+ Field number for the "oneofs" field.
+
+
+
+ The list of types appearing in `oneof` definitions in this type.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ A single field of a message type.
+
+
+
+ Field number for the "kind" field.
+
+
+
+ The field type.
+
+
+
+ Field number for the "cardinality" field.
+
+
+
+ The field cardinality.
+
+
+
+ Field number for the "number" field.
+
+
+
+ The field number.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The field name.
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ The field type URL, without the scheme, for message or enumeration
+ types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ The index of the field type in `Type.oneofs`, for message or enumeration
+ types. The first type has index 1; zero means the type is not in the list.
+
+
+
+ Field number for the "packed" field.
+
+
+
+ Whether to use alternative packed wire representation.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "json_name" field.
+
+
+
+ The field JSON name.
+
+
+
+ Field number for the "default_value" field.
+
+
+
+ The string value of the default value of this field. Proto2 syntax only.
+
+
+
+ Container for nested types declared in the Field message type.
+
+
+
+ Basic field types.
+
+
+
+
+ Field type unknown.
+
+
+
+
+ Field type double.
+
+
+
+
+ Field type float.
+
+
+
+
+ Field type int64.
+
+
+
+
+ Field type uint64.
+
+
+
+
+ Field type int32.
+
+
+
+
+ Field type fixed64.
+
+
+
+
+ Field type fixed32.
+
+
+
+
+ Field type bool.
+
+
+
+
+ Field type string.
+
+
+
+
+ Field type group. Proto2 syntax only, and deprecated.
+
+
+
+
+ Field type message.
+
+
+
+
+ Field type bytes.
+
+
+
+
+ Field type uint32.
+
+
+
+
+ Field type enum.
+
+
+
+
+ Field type sfixed32.
+
+
+
+
+ Field type sfixed64.
+
+
+
+
+ Field type sint32.
+
+
+
+
+ Field type sint64.
+
+
+
+
+ Whether a field is optional, required, or repeated.
+
+
+
+
+ For fields with unknown cardinality.
+
+
+
+
+ For optional fields.
+
+
+
+
+ For required fields. Proto2 syntax only.
+
+
+
+
+ For repeated fields.
+
+
+
+
+ Enum type definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum type name.
+
+
+
+ Field number for the "enumvalue" field.
+
+
+
+ Enum value definitions.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ Enum value definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum value name.
+
+
+
+ Field number for the "number" field.
+
+
+
+ Enum value number.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+
+ A protocol buffer option, which can be attached to a message, field,
+ enumeration, etc.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The option's name. For protobuf built-in options (options defined in
+ descriptor.proto), this is the short name. For example, `"map_entry"`.
+ For custom options, it should be the fully-qualified name. For example,
+ `"google.api.http"`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The option's value packed in an Any message. If the value is a primitive,
+ the corresponding wrapper type defined in google/protobuf/wrappers.proto
+ should be used. If the value is an enum, it should be stored as an int32
+ value using the google.protobuf.Int32Value type.
+
+
+
+ Holder for reflection information generated from google/protobuf/wrappers.proto
+
+
+ File descriptor for google/protobuf/wrappers.proto
+
+
+
+ Field number for the single "value" field in all wrapper types.
+
+
+
+
+ Wrapper message for `double`.
+
+ The JSON representation for `DoubleValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The double value.
+
+
+
+
+ Wrapper message for `float`.
+
+ The JSON representation for `FloatValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The float value.
+
+
+
+
+ Wrapper message for `int64`.
+
+ The JSON representation for `Int64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int64 value.
+
+
+
+
+ Wrapper message for `uint64`.
+
+ The JSON representation for `UInt64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint64 value.
+
+
+
+
+ Wrapper message for `int32`.
+
+ The JSON representation for `Int32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int32 value.
+
+
+
+
+ Wrapper message for `uint32`.
+
+ The JSON representation for `UInt32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint32 value.
+
+
+
+
+ Wrapper message for `bool`.
+
+ The JSON representation for `BoolValue` is JSON `true` and `false`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bool value.
+
+
+
+
+ Wrapper message for `string`.
+
+ The JSON representation for `StringValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The string value.
+
+
+
+
+ Wrapper message for `bytes`.
+
+ The JSON representation for `BytesValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bytes value.
+
+
+
+
+ This class is used internally by the Protocol Buffer Library and generated
+ message implementations. It is public only for the sake of those generated
+ messages. Others should not use this class directly.
+
+ This class contains constants and helper functions useful for dealing with
+ the Protocol Buffer wire format.
+
+
+
+
+
+ Wire types within protobuf encoding.
+
+
+
+
+ Variable-length integer.
+
+
+
+
+ A fixed-length 64-bit value.
+
+
+
+
+ A length-delimited value, i.e. a length followed by that many bytes of data.
+
+
+
+
+ A "start group" value
+
+
+
+
+ An "end group" value
+
+
+
+
+ A fixed-length 32-bit value.
+
+
+
+
+ Given a tag value, determines the wire type (lower 3 bits).
+
+
+
+
+ Given a tag value, determines the field number (the upper 29 bits).
+
+
+
+
+ Makes a tag value given a field number and wire type.
+
+
+
+
+ Abstraction for writing to a steam / IBufferWriter
+
+
+
+
+ Initialize an instance with a coded output stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer writer.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer represented by a single span (i.e. buffer cannot be refreshed)
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Verifies that SpaceLeft returns zero.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ An opaque struct that represents the current serialization state and is passed along
+ as the serialization proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Creates a WriteContext instance from CodedOutputStream.
+ WARNING: internally this copies the CodedOutputStream's state, so after done with the WriteContext,
+ the CodedOutputStream's state needs to be updated.
+
+
+
+
+ Writes a double field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Primitives for encoding protobuf wire format.
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Given a QWORD which represents a buffer of 4 ASCII chars in machine-endian order,
+ narrows each WORD to a BYTE, then writes the 4-byte result to the output buffer
+ also in machine-endian order.
+
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Encodes and writes a tag.
+
+
+
+
+ Writes an already-encoded tag.
+
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+
+
+
+ Encode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Encode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Writing messages / groups.
+
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+
+
+
+ Writes a group, without a tag.
+
+
+
+
+ Writes a message, without a tag.
+ Message will be written without a length prefix.
+
+
+
+
+ Indicates that certain members on a specified are accessed dynamically,
+ for example through .
+
+
+ This allows tools to understand which members are being accessed during the execution
+ of a program.
+
+ This attribute is valid on members whose type is or .
+
+ When this attribute is applied to a location of type , the assumption is
+ that the string represents a fully qualified type name.
+
+ When this attribute is applied to a class, interface, or struct, the members specified
+ can be accessed dynamically on instances returned from calling
+ on instances of that class, interface, or struct.
+
+ If the attribute is applied to a method it's treated as a special case and it implies
+ the attribute should be applied to the "this" parameter of the method. As such the attribute
+ should only be used on instance methods of types assignable to System.Type (or string, but no methods
+ will use it there).
+
+
+
+
+ Initializes a new instance of the class
+ with the specified member types.
+
+ The types of members dynamically accessed.
+
+
+
+ Gets the which specifies the type
+ of members dynamically accessed.
+
+
+
+
+ Specifies the types of members that are dynamically accessed.
+
+ This enumeration has a attribute that allows a
+ bitwise combination of its member values.
+
+
+
+
+ Specifies no members.
+
+
+
+
+ Specifies the default, parameterless public constructor.
+
+
+
+
+ Specifies all public constructors.
+
+
+
+
+ Specifies all non-public constructors.
+
+
+
+
+ Specifies all public methods.
+
+
+
+
+ Specifies all non-public methods.
+
+
+
+
+ Specifies all public fields.
+
+
+
+
+ Specifies all non-public fields.
+
+
+
+
+ Specifies all public nested types.
+
+
+
+
+ Specifies all non-public nested types.
+
+
+
+
+ Specifies all public properties.
+
+
+
+
+ Specifies all non-public properties.
+
+
+
+
+ Specifies all public events.
+
+
+
+
+ Specifies all non-public events.
+
+
+
+
+ Specifies all interfaces implemented by the type.
+
+
+
+
+ Specifies all members.
+
+
+
+
+ Indicates that the specified method requires dynamic access to code that is not referenced
+ statically, for example through .
+
+
+ This allows tools to understand which methods are unsafe to call when removing unreferenced
+ code from an application.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified message.
+
+
+ A message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets a message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets or sets an optional URL that contains more information about the method,
+ why it requires unreferenced code, and what options a consumer has to deal with it.
+
+
+
+
+ Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
+ single code artifact.
+
+
+ is different than
+ in that it doesn't have a
+ . So it is always preserved in the compiled assembly.
+
+
+
+
+ Initializes a new instance of the
+ class, specifying the category of the tool and the identifier for an analysis rule.
+
+ The category for the attribute.
+ The identifier of the analysis rule the attribute applies to.
+
+
+
+ Gets the category identifying the classification of the attribute.
+
+
+ The property describes the tool or tool analysis category
+ for which a message suppression attribute applies.
+
+
+
+
+ Gets the identifier of the analysis tool rule to be suppressed.
+
+
+ Concatenated together, the and
+ properties form a unique check identifier.
+
+
+
+
+ Gets or sets the scope of the code that is relevant for the attribute.
+
+
+ The Scope property is an optional argument that specifies the metadata scope for which
+ the attribute is relevant.
+
+
+
+
+ Gets or sets a fully qualified path that represents the target of the attribute.
+
+
+ The property is an optional argument identifying the analysis target
+ of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
+ Because it is fully qualified, it can be long, particularly for targets such as parameters.
+ The analysis tool user interface should be capable of automatically formatting the parameter.
+
+
+
+
+ Gets or sets an optional argument expanding on exclusion criteria.
+
+
+ The property is an optional argument that specifies additional
+ exclusion where the literal metadata target is not sufficiently precise. For example,
+ the cannot be applied within a method,
+ and it may be desirable to suppress a violation against a statement in the method that will
+ give a rule violation, but not against all statements in the method.
+
+
+
+
+ Gets or sets the justification for suppressing the code analysis message.
+
+
+
+
diff --git a/DevicePolling/bin/Debug/Interop.zkemkeeper.dll b/DevicePolling/bin/Debug/Interop.zkemkeeper.dll
new file mode 100644
index 0000000..854f844
Binary files /dev/null and b/DevicePolling/bin/Debug/Interop.zkemkeeper.dll differ
diff --git a/DevicePolling/bin/Debug/K4os.Compression.LZ4.Streams.dll b/DevicePolling/bin/Debug/K4os.Compression.LZ4.Streams.dll
new file mode 100644
index 0000000..05b9108
Binary files /dev/null and b/DevicePolling/bin/Debug/K4os.Compression.LZ4.Streams.dll differ
diff --git a/DevicePolling/bin/Debug/K4os.Compression.LZ4.Streams.xml b/DevicePolling/bin/Debug/K4os.Compression.LZ4.Streams.xml
new file mode 100644
index 0000000..0686e4b
--- /dev/null
+++ b/DevicePolling/bin/Debug/K4os.Compression.LZ4.Streams.xml
@@ -0,0 +1,1630 @@
+
+
+
+ K4os.Compression.LZ4.Streams
+
+
+
+
+ Generic interface for frame/stream decoder for LZ4.
+
+
+
+
+ Opens frame for reading. Please note, this method is not needed as it will be
+ called automatically, but it can be used to quickly check if frame is valid.
+
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Cancellation token.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Gets the length of the frame content if it was provided when content was encoded.
+ Frame length, or null
+
+
+ Async version of .
+ Cancellation token.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ A byte, or -1 if end of stream.
+
+
+ Reads one byte from LZ4 stream.
+ Cancellation token.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Cancellation token.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Returns how many bytes in has been read from stream so far.
+ Number of bytes read in total.
+
+
+ Closes the stream, releases allocated memory.
+
+
+
+ Generic interface for LZ4 frame/stream writer.
+
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Cancellation token.
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Byte to be written.
+
+
+ Writes one byte to stream.
+ Cancellation token.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Byte buffer.
+
+
+ Writes multiple bytes to stream.
+ Cancellation token.
+ Byte buffer.
+
+
+ Gets number of bytes written.
+ Total number of bytes (before compression).
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Cancellation token.
+
+
+
+ Stream reader interface. It is an adapter for all stream-like structures.
+
+ Stream state.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Number of bytes actually read.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Cancellation token.
+ containing new stream state,
+ and number of bytes actually read..
+
+
+
+ Generic stream writer interface.
+ When implementing custom compression target or decompression source you need to implement
+ this adapter. Please note, that this adapter can be implemented as class or
+ readonly struct. If implemented as struct it cannot have mutable state
+ as it will be lost. Immutable state is allowed but strongly discouraged.
+ Use instead.
+
+ Mutable part of stream state.
+
+
+ Indicates that writer can and should flush after frame.
+ Please note, flushing may have negative performance effect but may also lead to
+ better interactivity between writer and reader, as reader will get new block
+ available as soon as possible.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+ New stream state.
+
+
+ Number of bytes read.
+
+
+
+ Helper methods to create
+
+
+
+
+ Creates read result, composed of new stream state and bytes read.
+
+ Stream state.
+ Bytes read.
+ Stream state.
+ Read result.
+
+
+
+ Stream adapter for any class implementing .
+ It takes actual class, not interface, so it can use struct implementations
+ of for performance reasons.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+ Type implementing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ Copies bytes from span to buffer. Performs all length checks.
+
+ Head offset of .
+ Target buffer.
+ Offset in target buffer.
+ Number of bytes to copy.
+ Number of bytes actually copied.
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Memory buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Naive and simplistic implementation of adapter for .
+ It might be improved in many ways I believe, but it gives some starting point.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+
+
+
+
+ Creates new instance of .
+
+ Memory span.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Empty record equivalent to Unit/Void.
+ Works as placeholder type used when working with generic interfaces which do require type,
+ but implementation needs none.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe reader.
+
+
+
+
+
+
+
+
+
+ LZ4 stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new stream adapter for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unsafe version of . It is unsafe as it stores raw memory pointer
+ so memory it points to must be pinned. It allows reading and writing straight to
+ unmanaged memory but must be used carefully.
+ NOTE: If you don't understand what has been said above - don't use it. Misuse of this
+ struct may lead to unpredictable errors and memory corruption.
+
+
+
+ Pointer to the first byte of the span.
+
+
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from given pointer and length.
+
+ Pointer to the first byte of the span.
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from raw pointer.
+
+ Pointer block of bytes.
+ Length of the block.
+ New .
+
+
+
+ Converted to .
+
+
+
+
+ Utility methods for LZ4 streams.
+
+
+
+
+ Creates using .
+
+ LZ4 descriptor.
+ Compression level.
+ Additional memory for encoder.
+ Encoder.
+
+
+
+ Creates using and .
+
+ LZ4 descriptor.
+ Encoder settings.
+ Encoder.
+
+
+
+ Create using .
+
+ Descriptor.
+ Extra memory (may improves speed, but creates memory pressure).
+ .
+
+
+
+ Create using and .
+
+ Descriptor.
+ Settings.
+ .
+
+
+
+ Creates from .
+
+ Settings.
+ LZ4 Descriptor.
+
+
+ Async version of .
+ Decoder.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Decoder.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ Decoder.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Decoder.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Encoder.
+ true if frame has been opened, or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Encoder.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Encoder.
+ Byte buffer.
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Encoder.
+
+
+
+ Copies all bytes from into .
+
+ Frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ LZ4 frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Wraps as .
+
+ LZ4 frame reader.
+ Indicates that frame reader should be left open even if stream is
+ disposed.
+ Indicates that data should be provided to reader as quick as
+ possible, instead of waiting for whole block to be read.
+ stream wrapper.
+
+
+
+ Wraps as .
+
+ LZ4 frame writer.
+ Indicates that frame writer should be left open even if stream is
+ disposed.
+ stream wrapper.
+
+
+
+ LZ4 Decompression stream handling.
+
+
+
+ Creates new instance .
+ Inner stream.
+ Inner stream initial state.
+ Decoder factory.
+
+
+
+ Exposes internal stream state. Existence of this property is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the decoder. Consecutive attempts to read will fail.
+
+ true is stream is being disposed by user,
+ true is by garbage collector.
+
+
+
+ Releases unmanaged resources.
+
+
+
+
+ Releases unmanaged resources.
+
+ Task indicating operation is finished.
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Bytes span.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Memory buffer.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Byte sequence.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to read from.
+ Leave stream open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+ Disposes the reader.
+
+ true if user is disposing it; false if it has been triggered by garbage collector
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe to be read.
+ Leave pipe open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+
+
+
+
+
+
+ wrapper for .
+
+
+
+
+ Creates new instance of .
+
+ LZ4 frame reader.
+ Leave underlying stream open after disposing this stream.
+ Use interactive mode; return bytes as soon as they available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 stream encoder.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ Inner stream initial state.
+ LZ4 Encoder factory.
+ LZ4 settings.
+
+
+
+ Exposes internal stream state. Existence of this field is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the stream and releases all resources.
+
+ true if called by user; false when called by garbag collector.
+
+
+
+
+
+
+ Releases all unmanaged resources.
+
+
+
+
+ Releases all unmanaged resources.
+
+ Task indicating completion of the operation.
+
+
+
+ implementation for
+
+ Type of buffer writer.
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Current state of buffer writer.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Memory block where data will be written.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+ is a wrapper around that
+ can be stored in a field. Please note: it makes it unsafe and address needs to be pinned,
+ one way or another.
+
+
+
+
+ Creates new instance of .
+
+ Span to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to write to.
+ Leave stream open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer to write to.
+ Leave pipe open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ Adapter to make look like .
+
+
+
+ Creates new instance of .
+ Underlying frame encoder.
+ Indicates should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 Frame descriptor.
+
+
+
+ Content length. Not always known.
+
+
+ Indicates if content checksum is provided.
+
+
+ Indicates if blocks are chained (dependent) or not (independent).
+
+
+ Indicates if block checksums are provided.
+
+
+ Dictionary id. May be null.
+
+
+ Block size.
+
+
+
+ Completely empty class to do nothing.
+ It is used internally instead of CancellationToken to make sure
+ blocking operations are easily distinguishable from async ones
+ (you cannot call blocking operation by accident as they *require* EmptyToken).
+
+
+
+
+ Base class for all compatible adapters.
+
+ Type of resource stream adapter if for.
+
+
+
+ Creates new instance of .
+
+ Wrapped resource.
+ Do not dispose inner resource after stream is disposed.
+
+
+ Wrapped resource.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream essentials when wrapping another stream.
+ You most likely should not use it but it needs to be public as it is inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoder settings.
+
+
+
+ Extra memory for decompression.
+
+
+
+ LZ4 frame decoder stream.
+
+
+
+
+ Creates LZ4 decoder stream.
+
+ Inner stream, the stream compressed data is coming from..
+ Decoder factory.
+ Leave inner stream open after this stream is disposed.
+ Interactive mode, provide bytes as soon as they are available; don't wait for full block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 frame descriptor.
+
+
+
+ Content length (if available).
+
+
+ Indicates if content checksum if present.
+
+
+ Indicates if blocks are chained.
+
+
+ Indicates if block checksums are present.
+
+
+ Dictionary id (or null).
+
+
+ Block size.
+
+
+ Creates new instance of .
+ Content length.
+ Content checksum flag.
+ Chaining flag.
+ Block checksum flag.
+ Dictionary id.
+ Block size.
+
+
+ Creates new instance of .
+ Descriptor to copy.
+
+
+
+ LZ4 encoder settings.
+
+
+
+
+ Content length. It is not enforced, it can be set to any value, but it will be
+ written to the stream so it can be used while decoding. If you don't know the length
+ just leave default value.
+
+
+
+
+ Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
+ (with chaining) provide better compression ratio but are a little but slower and take
+ more memory.
+
+
+
+
+ Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
+ and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
+ better.
+
+
+
+ Indicates is content checksum should be included.
+
+
+ Indicates if block checksum should be included.
+
+
+ Dictionary id. Not implemented yet.
+
+
+ Compression level.
+
+
+ Extra memory (for the process, more is usually better).
+
+
+
+ LZ4 frame encoder stream.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ LZ4 Descriptor.
+ Function which will take descriptor and return
+ appropriate encoder.
+ Indicates if stream should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 factory methods to encode/decode anything which can be represented as a stream-like object.
+ Please note, to avoid all the complexity of dealing with streams, it uses
+ and as stream abstractions.
+
+
+
+ Creates decompression stream on top of inner stream.
+ Span to read from.
+ Buffer to write to.
+ Extra memory used for decompression.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Writes bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Encoder settings.
+ Leave target stream open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Compression level.
+ Extra memory for encoder.
+ Leave target stream open after encoder is disposed.
+
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Encoder settings.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Compression level.
+ Extra memory for encoder.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Utility class with factory methods to create LZ4 compression and decompression streams.
+
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression settings.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression level.
+ Extra memory used for compression.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Decompression settings.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Extra memory used for decompression.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+
diff --git a/DevicePolling/bin/Debug/K4os.Compression.LZ4.dll b/DevicePolling/bin/Debug/K4os.Compression.LZ4.dll
new file mode 100644
index 0000000..0748a24
Binary files /dev/null and b/DevicePolling/bin/Debug/K4os.Compression.LZ4.dll differ
diff --git a/DevicePolling/bin/Debug/K4os.Compression.LZ4.xml b/DevicePolling/bin/Debug/K4os.Compression.LZ4.xml
new file mode 100644
index 0000000..2ccb426
--- /dev/null
+++ b/DevicePolling/bin/Debug/K4os.Compression.LZ4.xml
@@ -0,0 +1,1211 @@
+
+
+
+ K4os.Compression.LZ4
+
+
+
+
+ Action performed by encoder using FlushAndEncode method.
+
+
+
+ Nothing has happened, most likely loading 0 bytes.
+
+
+ Some bytes has been loaded into encoder.
+
+
+ Compression was not possible so bytes has been copied.
+
+
+ Compression succeeded.
+
+
+
+ Interface of LZ4 decoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Bytes already decoded and available to be read.
+ Always smaller than
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded. These bytes can be read with .
+
+ Points to compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ These bytes can be read with .
+
+ Points to uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Reads previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Buffer to write to.
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+ Number of bytes to read.
+
+
+
+ Peeks at previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+
+
+
+ Interface of LZ4 encoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Number of bytes read for compression.
+ Always smaller than
+
+
+ Adds bytes to internal buffer. Increases
+ Source buffer.
+ Source buffer length.
+ Number of bytes topped up. If this function returns 0 it means that buffer
+ is full ( equals ) and
+ should be called to flush it.
+
+
+
+ Encodes bytes in internal buffer (see: , ).
+ If is true then if encoded buffer is bigger than
+ source buffer source bytes are copied instead. In such case returned length is negative.
+
+ Target buffer.
+ Target buffer length.
+ Indicates if copying is allowed.
+ Length of encoded buffer. Negative if bytes are just copied.
+
+
+
+ LZ4 decoder used with independent blocks mode. Please note, that it will fail
+ if input data has been compressed with chained blocks
+ ( and )
+
+
+
+ Creates new instance of block decoder.
+ Block size. Must be equal or greater to one used for compression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Independent block encoder. Produces larger files but uses less memory and
+ gives better performance.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+
+
+
+
+
+
+
+
+ LZ4 decoder handling dependent blocks.
+
+
+ Creates new instance of .
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Static class with factory methods to create LZ4 decoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Block size.
+ Number of extra blocks.
+ LZ4 decoder.
+
+
+
+ Static class with factory method to create LZ4 encoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Compression level.
+ Block size.
+ Number of extra blocks.
+ LZ4 encoder.
+
+
+
+ Base class for LZ4 encoders. Provides basic functionality shared by
+ , ,
+ and encoders. Do not used directly.
+
+
+
+ Creates new instance of encoder.
+ Needs to be true if using dependent blocks.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes single block using appropriate algorithm.
+ Source buffer.
+ Source buffer length.
+ Target buffer.
+ Target buffer length.
+ Number of bytes actually written to target buffer.
+
+
+ Copies current dictionary.
+ Target buffer.
+ Dictionary length.
+ Dictionary length.
+
+
+
+
+
+
+ Functionality of encoders added on top of fixed interface.
+
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer pointer, will be shifted after operation by the number of
+ bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset.
+ Length of buffer.
+ Number of bytes actually loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset, will be increased after operation by the number
+ of bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Number of bytes encoder. If bytes were copied than this value is negative.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer. Will be updated after operation.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer. Will be updated after operation.
+ Length of buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Source buffer length.
+ Target buffer (used to encode into)
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (used to encode into)
+ Offset within target buffer.
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Target buffer (used to encode into)
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Offset within target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset within target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Source buffer length.
+ Target buffer (to drained into).
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (to drained into).
+ Offset within target buffer.
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Target buffer (to drained into).
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ See .
+
+ Decoder.
+ Uncompressed block.
+ Offset in uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded.
+ See .
+
+ Decoder.
+ Compressed block.
+ Offset in compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ LZ4 encoder using dependent blocks with fast compression.
+
+
+
+ Creates new instance of
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 encoder using dependent blocks with high compression.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm selection.
+
+
+ Intel and ARMv7 version of 32 bit algorithm.
+
+
+ Intel version of 64 bit algorithm.
+
+
+ Checks what algorithm should be used (32 vs 64 bit).
+
+
+
+ Existence of this class is an admission of failure.
+ I failed to export internals to test assemblies.
+ Using InternalsVisibleTo work, of course, but with signing (which was requested
+ in https://github.com/MiloszKrajewski/K4os.Compression.LZ4/issues/9) it is
+ absolute PITA. So no, I'm not using InternalsVisibleTo I will just expose this
+ little class with some "redirects" to real internals.
+
+
+
+ Pubternal wrapper for LZ4_stream_t.
+
+
+ Creates new instance of wrapper for LZ4_stream_t.
+
+
+
+
+
+
+ Compresses chunk of data using LZ4_compress_fast_continue.
+
+ Wrapper for LZ4_stream_t
+ Source block address.
+ Target block address.
+ Source block length.
+ Target block length.
+ Acceleration.
+ Number of bytes actually written to target.
+
+
+
+ Naive wrapper around ArrayPool. Makes calls if something should be pooled.
+
+
+
+ Minimum size of the buffer that can be pooled.
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Clear all data.
+ Allocated buffer.
+
+
+
+ Determines if buffer was pooled or not.
+ The logic is quite simple: if buffer is smaller than 512 bytes are pooled.
+
+ Buffer.
+ true if buffer was pooled; false otherwise
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+ Utility class with memory related functions.
+
+
+ 1 KiB
+
+
+ 2 KiB
+
+
+ 4 KiB
+
+
+ 8 KiB
+
+
+ 16 KiB
+
+
+ 32 KiB
+
+
+ 64 KiB
+
+
+ 128 KiB
+
+
+ 256 KiB
+
+
+ 512 KiB
+
+
+ 1 MiB
+
+
+ 4 MiB
+
+
+ Empty byte array.
+
+
+ Checks if process is ran in 32-bit mode.
+
+
+ Rounds integer value up to nearest multiple of step.
+ A value.
+ A step.
+ Value rounded up.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Fills memory block with predefined .
+
+ The target block address.
+ Value to be used.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+ It handle "move" semantic properly handling overlapping blocks properly.
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+ Allocated block of memory. It is NOT initialized with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Fill block of memory with zeroes.
+ Address.
+ Length.
+ Original pointer.
+
+
+ Fills memory block with repeating pattern of a single byte.
+ Address.
+ A pattern.
+ Length.
+ Original pointer.
+
+
+ Allocates block of memory and fills it with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Free memory allocated previously with .
+ Pointer to allocated block.
+
+
+ Clones managed array to unmanaged one.
+ Allows quicker yet less safe unchecked access.
+ Input array.
+ Cloned array.
+
+
+ Reads exactly 1 byte from given address.
+ Address.
+ Byte at given address.
+
+
+ Writes exactly 1 byte to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Represents pinned memory.
+ It either points to unmanaged memory or block of memory from shared array pool.
+ When disposed, it handles it appropriately.
+
+
+
+
+ Maximum size of the buffer that can be pooled from shared array pool.
+
+
+
+ Pointer to block of bytes.
+
+
+ Pointer to block of bytes as span.
+
+
+ Pointer to block of bytes.
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Pinned memory pointer.
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory for one item from shared array pool.
+
+ PinnedMemory pointer.
+ Indicates if block should be zeroed.
+ Type of item.
+
+
+ Fill allocated block of memory with zeros.
+
+
+
+ Releases the memory.
+
+
+
+
+ Skeleton for class with unmanaged resources.
+ Implements but also handles proper release in
+ case was not called.
+
+
+
+ Determines if object was already disposed.
+
+
+ Throws exception is object has been disposed already. Convenience method.
+ Thrown if object is already disposed.
+
+
+ Method releasing unmanaged resources.
+
+
+ Method releasing managed resources.
+
+
+
+ Disposed resources.
+
+ true if dispose was explicitly called,
+ false if called from GC.
+
+
+
+
+
+ Destructor.
+
+
+ Unsafe memory operations.
+
+
+ Reads 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes 4 or 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+ Unsafe memory operations.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Static class exposing LZ4 block compression methods.
+
+
+
+ Version of LZ4 implementation.
+
+
+
+ Enforces 32-bit compression/decompression algorithm even on 64-bit systems.
+ Please note, this property should not be used on regular basis, it just allows
+ to workaround some problems on platforms which do not support 64-bit the same was
+ as Intel (for example: unaligned read/writes).
+
+
+
+ Maximum size after compression.
+ Length of input buffer.
+ Maximum length after compression.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Length of input buffer.
+ Output buffer.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Output buffer.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Dictionary buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer offset.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compression level.
+
+
+ Fast compression.
+
+
+ High compression, level 3.
+
+
+ High compression, level 4.
+
+
+ High compression, level 5.
+
+
+ High compression, level 6.
+
+
+ High compression, level 7.
+
+
+ High compression, level 8.
+
+
+ High compression, level 9.
+
+
+ Optimal compression, level 10.
+
+
+ Optimal compression, level 11.
+
+
+ Maximum compression, level 12.
+
+
+
+ Pickling support with LZ4 compression.
+
+
+ Pickling support with LZ4 compression.
+
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Length of input data.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ The data to inspect.
+ The size in bytes of the data once unpickled.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ Decoded header.
+ The size in bytes of the data once unpickled.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+ You obtain the size of the output buffer by calling .
+
+
+
+
diff --git a/DevicePolling/bin/Debug/K4os.Hash.xxHash.dll b/DevicePolling/bin/Debug/K4os.Hash.xxHash.dll
new file mode 100644
index 0000000..581a9d2
Binary files /dev/null and b/DevicePolling/bin/Debug/K4os.Hash.xxHash.dll differ
diff --git a/DevicePolling/bin/Debug/K4os.Hash.xxHash.xml b/DevicePolling/bin/Debug/K4os.Hash.xxHash.xml
new file mode 100644
index 0000000..920c77d
--- /dev/null
+++ b/DevicePolling/bin/Debug/K4os.Hash.xxHash.xml
@@ -0,0 +1,245 @@
+
+
+
+ K4os.Hash.xxHash
+
+
+
+
+ Adapter implementing
+
+
+
+
+ Creates new .
+
+ Hash size (in bytes)
+ Reset function.
+ Update function.
+ Digest function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for both and . Do not use directly.
+
+
+
+ Protected constructor to prevent instantiation.
+
+
+
+ xxHash 32-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
+ xxHash 64-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_10_31_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_10_31_2024.txt
new file mode 100644
index 0000000..6725a08
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_10_31_2024.txt
@@ -0,0 +1,2500 @@
+--Service is started at 10/31/2024 10:46:11 AM
+--Service is started at 10/31/2024 10:47:10 AM
+--Service is started at 10/31/2024 11:34:49 AM
+--Service is started at 10/31/2024 11:43:12 AM
+MACHINE : 192.168.6.9 : NO DATA
+MACHINE : 172.16.50.9 : , EMP NO : 1564167 , TIME : 10/31/2024 11:29:53 AM
+MACHINE : 11, TOTAL EMP : 450
+MACHINE : 172.16.50.7 : , EMP NO : 263062 , TIME : 10/31/2024 11:22:49 AM
+MACHINE : 12, TOTAL EMP : 73
+MACHINE : 172.16.50.8 : NO DATA
+MACHINE : 192.168.52.18 : NO DATA
+MACHINE : 192.168.52.19 : NO DATA
+MACHINE : 192.168.85.201 : NO DATA
+MACHINE : 192.168.85.202 : NOT CONNECTED
+MACHINE : 172.16.53.9 : NOT CONNECTED
+MACHINE : 192.168.50.3 : NO DATA
+MACHINE : 192.168.70.27 : NO DATA
+MACHINE : 192.168.86.186 : NOT CONNECTED
+MACHINE : 172.16.53.8 : NOT CONNECTED
+MACHINE : 10.0.0.5 : NOT CONNECTED
+MACHINE : 192.168.100.13 : NOT CONNECTED
+MACHINE : 172.16.1.95 : NOT CONNECTED
+MACHINE : 172.16.1.96 : NOT CONNECTED
+MACHINE : 192.168.9.169 : NO DATA
+MACHINE : 192.168.52.16 : NO DATA
+12304--> Save in db
+MACHINE : 192.168.52.17 : , EMP NO : 12304 , TIME : 10/31/2024 11:41:13 AM
+MACHINE : 8, TOTAL EMP : 645
+12304--> Save in db
+MACHINE : 192.168.19.5 : NO DATA
+MACHINE : 192.168.50.8 : , EMP NO : 123 , TIME : 10/23/2024 11:49:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 123 , TIME : 10/23/2024 11:49:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/23/2024 11:52:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/23/2024 11:52:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/24/2024 11:26:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/24/2024 11:27:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56269 , TIME : 10/24/2024 11:29:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56269 , TIME : 10/24/2024 11:29:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/24/2024 11:42:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/24/2024 11:42:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/24/2024 12:12:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/24/2024 12:12:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/24/2024 12:26:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/24/2024 12:26:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8279 , TIME : 10/24/2024 12:31:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8279 , TIME : 10/24/2024 12:31:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/24/2024 1:03:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/24/2024 1:03:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/24/2024 1:03:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55273 , TIME : 10/24/2024 2:28:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/24/2024 3:09:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/24/2024 3:09:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/24/2024 3:09:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/24/2024 3:18:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/24/2024 3:18:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/24/2024 3:18:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/24/2024 5:11:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/24/2024 5:11:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10818 , TIME : 10/24/2024 5:14:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/24/2024 5:54:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/24/2024 5:54:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/24/2024 6:19:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/24/2024 6:19:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 10/24/2024 6:21:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 10/24/2024 6:21:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/24/2024 6:29:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/24/2024 6:29:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/24/2024 6:30:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/24/2024 6:30:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56260 , TIME : 10/24/2024 6:48:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56260 , TIME : 10/24/2024 6:48:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56260 , TIME : 10/24/2024 6:48:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/24/2024 7:32:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/24/2024 7:32:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/24/2024 7:33:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/24/2024 7:33:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/24/2024 7:34:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/24/2024 7:34:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/24/2024 7:35:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/24/2024 7:35:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/24/2024 7:36:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/24/2024 7:36:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/24/2024 7:36:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/24/2024 7:36:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/24/2024 7:37:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/24/2024 7:37:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/24/2024 7:38:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/24/2024 7:38:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/24/2024 7:38:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/24/2024 7:39:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/24/2024 7:39:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/24/2024 7:40:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/24/2024 7:41:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/24/2024 7:41:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/24/2024 7:41:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/24/2024 7:42:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/24/2024 7:42:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/24/2024 7:43:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/24/2024 7:43:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/24/2024 7:44:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/24/2024 7:44:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/24/2024 7:46:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/24/2024 7:46:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/24/2024 7:47:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/24/2024 7:47:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/24/2024 7:53:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/24/2024 7:53:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/24/2024 8:03:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/24/2024 8:03:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/24/2024 8:21:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/24/2024 8:48:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/24/2024 8:49:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/24/2024 8:49:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/24/2024 8:52:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/24/2024 8:52:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/24/2024 9:00:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/24/2024 9:00:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/24/2024 9:00:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/24/2024 9:00:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/24/2024 9:05:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/24/2024 9:05:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/24/2024 9:56:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/24/2024 9:56:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/24/2024 10:10:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/24/2024 10:10:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/25/2024 5:09:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/25/2024 5:09:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/25/2024 6:22:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/25/2024 6:22:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/25/2024 7:41:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/25/2024 7:41:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/25/2024 7:51:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/25/2024 7:51:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/25/2024 7:53:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/25/2024 7:53:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/25/2024 8:07:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/25/2024 8:07:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/25/2024 8:09:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/25/2024 8:09:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/25/2024 8:09:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/25/2024 8:09:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/25/2024 8:09:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/25/2024 8:09:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/25/2024 8:09:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/25/2024 8:09:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/25/2024 8:09:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/25/2024 8:09:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/25/2024 8:09:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/25/2024 8:10:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/25/2024 8:10:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/25/2024 8:10:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/25/2024 8:10:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/25/2024 8:14:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/25/2024 8:15:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/25/2024 8:16:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/25/2024 8:18:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/25/2024 8:18:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/25/2024 8:18:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/25/2024 8:23:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/25/2024 8:23:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/25/2024 8:26:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/25/2024 8:26:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56269 , TIME : 10/25/2024 8:33:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56269 , TIME : 10/25/2024 8:33:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/25/2024 8:38:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/25/2024 8:38:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/25/2024 8:59:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/25/2024 8:59:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/25/2024 9:55:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/25/2024 9:55:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/25/2024 10:31:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/25/2024 10:31:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/25/2024 10:32:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/25/2024 10:32:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/25/2024 11:24:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/25/2024 11:49:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/25/2024 11:49:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 10/25/2024 12:16:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 10/25/2024 12:16:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/25/2024 12:27:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/25/2024 12:32:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/25/2024 3:09:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/25/2024 3:09:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/25/2024 4:16:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/25/2024 4:16:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/25/2024 4:42:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/25/2024 4:42:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/25/2024 6:15:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/25/2024 6:15:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/25/2024 6:17:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/25/2024 6:17:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/25/2024 6:23:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/25/2024 6:23:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 52830 , TIME : 10/25/2024 6:25:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 52830 , TIME : 10/25/2024 6:25:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/25/2024 6:26:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/25/2024 6:26:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/25/2024 6:27:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/25/2024 6:27:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/25/2024 6:27:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/25/2024 6:27:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/25/2024 6:29:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572753 , TIME : 10/25/2024 6:30:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572753 , TIME : 10/25/2024 6:30:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/25/2024 6:31:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/25/2024 6:31:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/25/2024 6:32:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/25/2024 6:32:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/25/2024 6:34:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/25/2024 6:34:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/25/2024 6:36:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/25/2024 6:36:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/25/2024 6:39:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/25/2024 6:39:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/25/2024 6:40:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/25/2024 6:41:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/25/2024 6:44:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 10/25/2024 6:46:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 10/25/2024 6:46:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/25/2024 7:01:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/25/2024 7:01:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/25/2024 7:02:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/25/2024 7:02:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/25/2024 7:07:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/25/2024 7:07:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3311 , TIME : 10/25/2024 7:14:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/25/2024 7:16:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/25/2024 7:16:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/25/2024 7:25:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/25/2024 7:25:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/25/2024 7:26:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/25/2024 7:26:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/25/2024 7:31:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/25/2024 7:31:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/25/2024 7:34:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/25/2024 7:34:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/25/2024 7:35:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/25/2024 7:35:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/25/2024 7:35:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/25/2024 7:36:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/25/2024 7:36:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 10/25/2024 7:37:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 10/25/2024 7:37:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/25/2024 7:37:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/25/2024 7:37:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/25/2024 7:37:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/25/2024 7:37:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/25/2024 7:37:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/25/2024 7:37:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/25/2024 7:38:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/25/2024 7:38:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/25/2024 7:39:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/25/2024 7:39:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/25/2024 7:40:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/25/2024 7:40:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/25/2024 7:40:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56173 , TIME : 10/25/2024 7:41:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/25/2024 7:42:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/25/2024 7:42:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/25/2024 7:42:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/25/2024 7:42:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/25/2024 7:43:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/25/2024 7:43:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/25/2024 7:44:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/25/2024 7:44:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/25/2024 7:45:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/25/2024 7:45:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/25/2024 7:45:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/25/2024 7:45:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/25/2024 7:59:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/25/2024 8:00:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/25/2024 8:00:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/25/2024 8:00:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 10/25/2024 8:05:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 10/25/2024 8:05:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/25/2024 8:06:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/25/2024 8:06:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/25/2024 8:06:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/25/2024 8:10:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/25/2024 8:10:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/25/2024 8:17:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/25/2024 8:17:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/25/2024 8:17:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/25/2024 8:21:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/25/2024 8:21:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/25/2024 8:21:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/25/2024 8:21:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/25/2024 8:21:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/25/2024 8:23:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/25/2024 8:23:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/25/2024 8:23:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56310 , TIME : 10/25/2024 8:24:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56310 , TIME : 10/25/2024 8:24:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/25/2024 8:25:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/25/2024 8:25:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 10/25/2024 8:26:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 10/25/2024 8:26:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/25/2024 8:26:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/25/2024 8:26:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/25/2024 8:26:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/25/2024 8:26:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/25/2024 8:26:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/25/2024 8:29:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/25/2024 8:29:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/25/2024 8:44:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/25/2024 8:44:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/25/2024 8:45:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/25/2024 8:45:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/25/2024 8:46:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/25/2024 8:46:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/25/2024 8:56:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/25/2024 9:03:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/25/2024 9:03:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/25/2024 9:13:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/25/2024 9:13:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/25/2024 9:28:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/25/2024 9:30:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/25/2024 9:30:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/25/2024 9:35:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/25/2024 9:35:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/25/2024 9:56:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/25/2024 10:13:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/25/2024 10:43:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/26/2024 6:13:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/26/2024 6:13:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/26/2024 6:47:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/26/2024 6:47:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/26/2024 6:48:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/26/2024 6:48:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/26/2024 6:57:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/26/2024 6:57:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/26/2024 6:57:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/26/2024 7:01:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/26/2024 7:10:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/26/2024 7:10:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/26/2024 7:10:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/26/2024 7:10:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/26/2024 7:10:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 7:19:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 7:19:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/26/2024 7:21:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/26/2024 7:21:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/26/2024 7:24:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/26/2024 7:24:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/26/2024 7:27:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/26/2024 7:27:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/26/2024 7:37:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/26/2024 7:37:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/26/2024 7:38:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/26/2024 7:38:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/26/2024 7:40:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/26/2024 7:40:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/26/2024 7:44:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/26/2024 7:44:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/26/2024 7:46:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/26/2024 7:46:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/26/2024 7:50:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/26/2024 7:50:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 10/26/2024 7:51:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 10/26/2024 7:51:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/26/2024 7:54:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/26/2024 7:54:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/26/2024 7:54:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/26/2024 7:54:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/26/2024 7:54:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/26/2024 7:54:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/26/2024 7:54:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/26/2024 8:01:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/26/2024 8:02:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/26/2024 8:02:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/26/2024 8:05:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/26/2024 8:05:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/26/2024 8:07:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/26/2024 8:07:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/26/2024 8:07:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/26/2024 8:07:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/26/2024 8:07:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/26/2024 8:07:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/26/2024 8:08:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/26/2024 8:08:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/26/2024 8:08:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/26/2024 8:08:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/26/2024 8:08:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/26/2024 8:09:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/26/2024 8:09:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/26/2024 8:10:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/26/2024 8:10:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/26/2024 8:12:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/26/2024 8:13:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/26/2024 8:13:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/26/2024 8:13:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/26/2024 8:14:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/26/2024 8:14:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/26/2024 8:14:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/26/2024 8:14:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/26/2024 8:14:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/26/2024 8:14:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/26/2024 8:14:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/26/2024 8:14:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/26/2024 8:14:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/26/2024 8:14:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/26/2024 8:14:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/26/2024 8:14:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/26/2024 8:14:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/26/2024 8:15:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56173 , TIME : 10/26/2024 8:21:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/26/2024 8:23:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/26/2024 8:23:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 10/26/2024 8:27:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 10/26/2024 8:27:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/26/2024 8:29:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/26/2024 8:29:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/26/2024 8:32:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/26/2024 8:32:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/26/2024 8:32:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/26/2024 8:32:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/26/2024 8:32:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/26/2024 8:32:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/26/2024 8:37:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/26/2024 8:37:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/26/2024 8:38:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/26/2024 8:40:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/26/2024 8:40:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/26/2024 8:42:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/26/2024 8:42:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/26/2024 8:42:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/26/2024 8:42:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/26/2024 8:42:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/26/2024 8:42:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/26/2024 8:50:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 8:53:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 8:53:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/26/2024 8:55:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/26/2024 8:55:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 8:59:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 8:59:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 8:59:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/26/2024 9:00:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/26/2024 9:00:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/26/2024 11:07:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/26/2024 11:07:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/26/2024 12:30:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/26/2024 12:30:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/26/2024 1:55:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/26/2024 1:55:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12060 , TIME : 10/26/2024 1:56:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12060 , TIME : 10/26/2024 1:56:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/26/2024 3:09:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/26/2024 3:09:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/26/2024 4:09:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55258 , TIME : 10/26/2024 4:12:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55258 , TIME : 10/26/2024 4:12:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55258 , TIME : 10/26/2024 4:12:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/26/2024 4:14:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/26/2024 4:14:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/26/2024 4:47:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/26/2024 4:47:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/26/2024 4:58:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/26/2024 4:58:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/26/2024 5:04:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/26/2024 5:04:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/26/2024 5:16:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/26/2024 5:16:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/26/2024 5:21:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/26/2024 5:21:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/26/2024 5:39:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/26/2024 5:39:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/26/2024 5:46:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/26/2024 5:46:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 10/26/2024 5:52:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/26/2024 5:59:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/26/2024 5:59:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/26/2024 6:08:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/26/2024 6:08:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/26/2024 6:15:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/26/2024 6:15:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/26/2024 6:17:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/26/2024 6:18:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/26/2024 6:30:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/26/2024 6:36:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/26/2024 6:42:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/26/2024 6:42:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/26/2024 6:42:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572753 , TIME : 10/26/2024 6:43:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572753 , TIME : 10/26/2024 6:43:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/26/2024 6:50:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/26/2024 6:50:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/26/2024 6:52:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 10/26/2024 6:54:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 10/26/2024 6:54:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/26/2024 6:55:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/26/2024 6:55:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/26/2024 6:59:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/26/2024 7:08:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/26/2024 7:08:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/26/2024 7:17:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/26/2024 7:17:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/26/2024 7:19:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/26/2024 7:19:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/26/2024 7:29:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/26/2024 7:29:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/26/2024 7:30:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/26/2024 7:30:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/26/2024 7:31:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/26/2024 7:31:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/26/2024 7:31:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/26/2024 7:32:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/26/2024 7:32:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/26/2024 7:34:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/26/2024 7:34:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/26/2024 7:34:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/26/2024 7:34:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/26/2024 7:35:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/26/2024 7:35:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/26/2024 7:36:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/26/2024 7:36:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/26/2024 7:36:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/26/2024 7:36:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/26/2024 7:37:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/26/2024 7:37:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/26/2024 7:37:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/26/2024 7:37:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/26/2024 7:37:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/26/2024 7:38:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/26/2024 7:38:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/26/2024 7:39:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/26/2024 7:40:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/26/2024 7:40:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/26/2024 7:40:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/26/2024 7:41:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/26/2024 7:41:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/26/2024 7:41:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/26/2024 7:41:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 7:42:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/26/2024 7:42:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/26/2024 7:42:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/26/2024 7:42:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/26/2024 7:42:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/26/2024 7:43:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/26/2024 7:46:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/26/2024 7:46:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56173 , TIME : 10/26/2024 7:46:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1730 , TIME : 10/26/2024 7:58:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/26/2024 7:58:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/26/2024 7:58:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/26/2024 7:59:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/26/2024 7:59:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/26/2024 8:03:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/26/2024 8:03:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/26/2024 8:06:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/26/2024 8:07:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/26/2024 8:07:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/26/2024 8:07:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/26/2024 8:11:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/26/2024 8:11:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/26/2024 8:13:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/26/2024 8:13:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/26/2024 8:14:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/26/2024 8:14:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/26/2024 8:15:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/26/2024 8:15:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/26/2024 8:15:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/26/2024 8:16:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/26/2024 8:16:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/26/2024 8:17:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/26/2024 8:17:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/26/2024 8:18:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/26/2024 8:18:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/26/2024 8:19:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/26/2024 8:19:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/26/2024 8:19:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/26/2024 8:19:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/26/2024 8:19:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/26/2024 8:19:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/26/2024 8:20:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/26/2024 8:20:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/26/2024 8:20:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/26/2024 8:21:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/26/2024 8:21:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56009 , TIME : 10/26/2024 8:22:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56009 , TIME : 10/26/2024 8:22:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/26/2024 8:23:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/26/2024 8:25:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/26/2024 8:25:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 10/26/2024 8:26:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 10/26/2024 8:26:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/26/2024 8:34:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/26/2024 8:34:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/26/2024 8:53:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/26/2024 8:53:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/26/2024 8:53:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/26/2024 8:54:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/26/2024 8:54:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/26/2024 9:03:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/26/2024 9:03:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/26/2024 9:03:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/26/2024 9:03:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/26/2024 9:04:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/26/2024 9:09:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/26/2024 9:09:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/26/2024 9:10:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/26/2024 9:11:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/26/2024 9:11:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/26/2024 9:12:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/26/2024 9:12:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/26/2024 9:24:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/26/2024 9:24:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/26/2024 9:37:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/26/2024 9:37:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/26/2024 9:41:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/26/2024 9:41:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/26/2024 9:49:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/26/2024 9:49:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/26/2024 9:49:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/26/2024 9:54:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/26/2024 10:39:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/26/2024 10:39:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/26/2024 10:39:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 10/26/2024 11:00:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 10/26/2024 11:00:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/26/2024 11:00:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/26/2024 11:00:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/26/2024 11:06:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/26/2024 11:06:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/26/2024 11:09:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/26/2024 11:09:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/26/2024 11:17:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/26/2024 11:18:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/26/2024 11:49:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/26/2024 11:49:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/27/2024 12:15:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/27/2024 12:15:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/27/2024 5:10:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/27/2024 5:10:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/27/2024 6:19:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/27/2024 6:19:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/27/2024 6:19:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/27/2024 6:19:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/27/2024 6:20:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/27/2024 6:22:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/27/2024 6:22:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/27/2024 6:30:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/27/2024 6:30:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/27/2024 6:30:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/27/2024 7:14:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/27/2024 7:14:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/27/2024 7:18:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/27/2024 7:18:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/27/2024 7:38:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/27/2024 7:38:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/27/2024 7:38:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/27/2024 7:38:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/27/2024 7:38:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/27/2024 7:40:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/27/2024 7:40:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/27/2024 7:42:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/27/2024 7:42:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/27/2024 7:42:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/27/2024 7:44:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/27/2024 7:44:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/27/2024 7:46:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/27/2024 7:49:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/27/2024 7:49:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/27/2024 7:49:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/27/2024 7:49:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 10/27/2024 7:49:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/27/2024 7:49:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/27/2024 7:49:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/27/2024 7:50:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/27/2024 7:50:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/27/2024 7:50:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/27/2024 7:50:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/27/2024 7:51:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/27/2024 7:51:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/27/2024 7:52:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/27/2024 7:52:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/27/2024 7:52:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/27/2024 7:54:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 10/27/2024 7:54:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 7:55:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 7:55:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/27/2024 8:00:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/27/2024 8:00:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/27/2024 8:02:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/27/2024 8:02:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/27/2024 8:02:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/27/2024 8:02:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/27/2024 8:05:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/27/2024 8:08:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/27/2024 8:08:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/27/2024 8:12:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/27/2024 8:12:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/27/2024 8:12:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/27/2024 8:12:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/27/2024 8:12:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/27/2024 8:12:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/27/2024 8:12:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/27/2024 8:12:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/27/2024 8:12:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/27/2024 8:12:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 8:13:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 8:13:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/27/2024 8:13:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/27/2024 8:14:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/27/2024 8:14:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/27/2024 8:14:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/27/2024 8:14:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/27/2024 8:14:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/27/2024 8:14:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/27/2024 8:14:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/27/2024 8:17:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/27/2024 8:17:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56009 , TIME : 10/27/2024 8:18:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56009 , TIME : 10/27/2024 8:18:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/27/2024 8:18:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/27/2024 8:24:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/27/2024 8:25:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/27/2024 8:25:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/27/2024 8:25:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/27/2024 8:25:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/27/2024 8:33:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/27/2024 8:33:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/27/2024 8:36:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/27/2024 8:36:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/27/2024 8:36:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/27/2024 8:42:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/27/2024 8:48:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/27/2024 8:48:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/27/2024 8:55:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/27/2024 8:55:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/27/2024 8:57:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/27/2024 8:57:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/27/2024 8:57:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/27/2024 9:00:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/27/2024 9:00:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/27/2024 9:09:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/27/2024 9:22:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/27/2024 9:22:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/27/2024 9:27:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/27/2024 9:27:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/27/2024 9:35:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 10:09:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 10:13:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/27/2024 10:32:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 11:02:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/27/2024 11:06:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/27/2024 11:06:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/27/2024 11:17:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/27/2024 11:17:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/27/2024 11:17:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/27/2024 11:17:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/27/2024 11:17:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/27/2024 11:17:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 10/27/2024 11:22:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 10/27/2024 11:23:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 10/27/2024 11:23:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/27/2024 11:27:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/27/2024 11:27:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/27/2024 11:30:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/27/2024 11:30:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/27/2024 11:30:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 10/27/2024 11:32:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 10/27/2024 11:32:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/27/2024 12:09:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/27/2024 12:09:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/27/2024 12:10:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/27/2024 12:10:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/27/2024 12:10:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/27/2024 12:23:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/27/2024 12:23:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 12:24:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/27/2024 12:43:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/27/2024 1:11:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/27/2024 1:11:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/27/2024 1:12:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/27/2024 1:12:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/27/2024 1:14:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/27/2024 1:15:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/27/2024 1:15:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/27/2024 1:47:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/27/2024 1:47:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/27/2024 2:05:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/27/2024 2:05:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/27/2024 2:05:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/27/2024 2:09:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 2:16:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 2:16:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 10/27/2024 2:19:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 10/27/2024 2:19:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 10/27/2024 2:19:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/27/2024 2:21:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/27/2024 2:21:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/27/2024 2:28:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/27/2024 2:28:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/27/2024 2:29:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/27/2024 2:33:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/27/2024 2:37:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/27/2024 2:37:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/27/2024 2:37:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 2:39:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4343 , TIME : 10/27/2024 3:04:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4343 , TIME : 10/27/2024 3:04:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/27/2024 3:33:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/27/2024 4:07:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/27/2024 4:07:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 4:18:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 4:18:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/27/2024 4:18:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/27/2024 4:18:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/27/2024 4:30:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/27/2024 4:30:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 4:32:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/27/2024 4:32:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/27/2024 4:42:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/27/2024 4:42:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/27/2024 4:42:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/27/2024 4:42:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/27/2024 4:42:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/27/2024 4:51:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/27/2024 4:51:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/27/2024 4:51:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/27/2024 5:09:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/27/2024 5:12:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/27/2024 5:12:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/27/2024 5:14:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/27/2024 5:26:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/27/2024 5:26:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 10/27/2024 5:28:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 10/27/2024 5:28:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 10/27/2024 5:29:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 10/27/2024 5:29:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1586762 , TIME : 10/27/2024 5:30:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1586762 , TIME : 10/27/2024 5:30:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/27/2024 5:31:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/27/2024 5:31:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/27/2024 5:32:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/27/2024 5:32:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/27/2024 5:36:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/27/2024 5:36:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/27/2024 5:40:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/27/2024 5:40:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/27/2024 6:00:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/27/2024 6:00:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 6:00:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 6:00:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 10/27/2024 6:00:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 10/27/2024 6:00:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/27/2024 6:12:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/27/2024 6:12:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/27/2024 6:12:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/27/2024 6:12:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/27/2024 6:13:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/27/2024 6:21:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/27/2024 6:21:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/27/2024 6:25:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/27/2024 6:28:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/27/2024 6:28:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/27/2024 6:30:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/27/2024 6:30:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/27/2024 6:32:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/27/2024 6:32:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/27/2024 6:36:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/27/2024 6:36:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/27/2024 6:36:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/27/2024 6:36:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/27/2024 6:37:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/27/2024 6:37:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56223 , TIME : 10/27/2024 6:38:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56223 , TIME : 10/27/2024 6:38:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/27/2024 6:42:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/27/2024 6:44:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/27/2024 6:44:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/27/2024 6:50:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/27/2024 6:50:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/27/2024 6:50:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/27/2024 6:50:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/27/2024 6:51:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 10/27/2024 6:51:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/27/2024 6:58:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/27/2024 7:12:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/27/2024 7:12:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/27/2024 7:13:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/27/2024 7:13:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/27/2024 7:14:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/27/2024 7:14:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/27/2024 7:19:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/27/2024 7:20:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/27/2024 7:20:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 7:20:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/27/2024 7:20:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/27/2024 7:25:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/27/2024 7:26:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/27/2024 7:26:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/27/2024 7:26:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/27/2024 7:29:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/27/2024 7:30:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/27/2024 7:30:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/27/2024 7:30:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/27/2024 7:31:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/27/2024 7:32:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/27/2024 7:32:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/27/2024 7:33:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/27/2024 7:33:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/27/2024 7:34:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/27/2024 7:34:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/27/2024 7:35:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/27/2024 7:35:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/27/2024 7:35:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 10/27/2024 7:35:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/27/2024 7:36:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/27/2024 7:36:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/27/2024 7:36:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/27/2024 7:36:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/27/2024 7:38:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/27/2024 7:38:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/27/2024 7:38:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/27/2024 7:38:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/27/2024 7:38:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/27/2024 7:39:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/27/2024 7:39:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/27/2024 7:39:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/27/2024 7:39:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/27/2024 7:41:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/27/2024 7:42:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/27/2024 7:42:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/27/2024 7:42:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 10/27/2024 7:45:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/27/2024 7:49:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/27/2024 7:49:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/27/2024 7:51:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/27/2024 7:51:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9760 , TIME : 10/27/2024 7:53:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9760 , TIME : 10/27/2024 7:54:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/27/2024 7:54:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/27/2024 7:54:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/27/2024 8:00:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/27/2024 8:00:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/27/2024 8:00:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/27/2024 8:01:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/27/2024 8:01:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/27/2024 8:05:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/27/2024 8:05:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/27/2024 8:06:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/27/2024 8:06:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/27/2024 8:06:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/27/2024 8:07:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/27/2024 8:07:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/27/2024 8:07:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/27/2024 8:08:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/27/2024 8:08:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/27/2024 8:08:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/27/2024 8:08:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/27/2024 8:08:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/27/2024 8:14:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/27/2024 8:14:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/27/2024 8:14:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/27/2024 8:16:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/27/2024 8:16:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/27/2024 8:18:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/27/2024 8:18:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/27/2024 8:18:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 10/27/2024 8:19:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 10/27/2024 8:19:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56154 , TIME : 10/27/2024 8:20:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56154 , TIME : 10/27/2024 8:20:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/27/2024 8:33:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/27/2024 8:33:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/27/2024 8:33:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/27/2024 8:33:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/27/2024 8:39:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/27/2024 8:40:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/27/2024 8:40:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/27/2024 8:44:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/27/2024 8:44:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53058 , TIME : 10/27/2024 8:45:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53058 , TIME : 10/27/2024 8:45:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/27/2024 8:47:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/27/2024 8:49:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/27/2024 8:49:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/27/2024 8:55:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/27/2024 8:55:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/27/2024 8:55:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/27/2024 8:56:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56347 , TIME : 10/27/2024 9:01:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56347 , TIME : 10/27/2024 9:01:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/27/2024 9:06:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/27/2024 9:06:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/27/2024 9:19:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/27/2024 9:19:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/27/2024 9:21:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/27/2024 9:21:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 10/27/2024 9:29:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/27/2024 9:50:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/27/2024 9:50:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/27/2024 10:19:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/27/2024 10:20:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/27/2024 10:22:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/27/2024 10:22:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/27/2024 10:23:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/27/2024 10:23:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/27/2024 10:24:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/27/2024 10:24:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/27/2024 10:25:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/27/2024 10:44:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/27/2024 10:44:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/27/2024 11:10:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/27/2024 11:10:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/28/2024 6:42:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/28/2024 6:42:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 6:48:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 6:48:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/28/2024 6:55:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/28/2024 6:56:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/28/2024 7:01:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/28/2024 7:01:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3311 , TIME : 10/28/2024 7:04:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53058 , TIME : 10/28/2024 7:06:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53058 , TIME : 10/28/2024 7:06:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/28/2024 7:08:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/28/2024 7:08:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/28/2024 7:15:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/28/2024 7:15:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/28/2024 7:16:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/28/2024 7:16:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 7:17:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/28/2024 7:27:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/28/2024 7:27:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/28/2024 7:27:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/28/2024 7:27:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/28/2024 7:28:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/28/2024 7:30:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/28/2024 7:30:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/28/2024 7:33:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/28/2024 7:35:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/28/2024 7:36:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/28/2024 7:36:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 10/28/2024 7:37:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/28/2024 7:38:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/28/2024 7:38:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/28/2024 7:38:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/28/2024 7:39:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/28/2024 7:39:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/28/2024 7:41:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/28/2024 7:41:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/28/2024 7:42:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/28/2024 7:42:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/28/2024 7:44:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/28/2024 7:44:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/28/2024 7:45:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/28/2024 7:46:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/28/2024 7:46:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/28/2024 7:46:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/28/2024 7:46:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/28/2024 7:47:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/28/2024 7:47:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/28/2024 7:48:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/28/2024 7:48:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/28/2024 7:48:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/28/2024 7:48:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/28/2024 7:48:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/28/2024 7:48:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/28/2024 7:49:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/28/2024 7:49:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/28/2024 7:49:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/28/2024 7:53:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/28/2024 7:53:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/28/2024 7:56:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/28/2024 7:58:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/28/2024 7:58:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/28/2024 8:01:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/28/2024 8:02:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/28/2024 8:03:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/28/2024 8:03:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/28/2024 8:04:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/28/2024 8:04:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/28/2024 8:04:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/28/2024 8:05:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/28/2024 8:05:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/28/2024 8:06:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/28/2024 8:06:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/28/2024 8:06:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/28/2024 8:09:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/28/2024 8:09:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/28/2024 8:09:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/28/2024 8:09:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/28/2024 8:10:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/28/2024 8:10:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/28/2024 8:12:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/28/2024 8:12:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/28/2024 8:13:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/28/2024 8:13:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/28/2024 8:13:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/28/2024 8:14:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/28/2024 8:14:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/28/2024 8:14:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/28/2024 8:14:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/28/2024 8:15:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/28/2024 8:15:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/28/2024 8:15:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/28/2024 8:15:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/28/2024 8:15:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/28/2024 8:15:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/28/2024 8:15:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/28/2024 8:16:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/28/2024 8:16:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/28/2024 8:16:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/28/2024 8:17:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/28/2024 8:17:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/28/2024 8:19:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56173 , TIME : 10/28/2024 8:20:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/28/2024 8:23:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/28/2024 8:23:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/28/2024 8:26:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/28/2024 8:26:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/28/2024 8:32:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/28/2024 8:32:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/28/2024 8:35:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/28/2024 8:35:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/28/2024 8:35:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/28/2024 8:35:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/28/2024 8:36:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/28/2024 8:36:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/28/2024 8:37:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/28/2024 8:37:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/28/2024 8:37:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/28/2024 8:37:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/28/2024 8:37:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/28/2024 8:38:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/28/2024 8:38:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/28/2024 8:39:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/28/2024 8:49:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 8:51:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/28/2024 8:51:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/28/2024 8:51:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/28/2024 8:53:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/28/2024 8:54:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/28/2024 8:54:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/28/2024 8:54:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/28/2024 8:55:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/28/2024 9:00:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/28/2024 9:00:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/28/2024 9:14:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/28/2024 9:14:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/28/2024 9:16:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/28/2024 9:16:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11517 , TIME : 10/28/2024 9:18:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11517 , TIME : 10/28/2024 9:18:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/28/2024 9:22:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/28/2024 9:22:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 9:22:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 9:22:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/28/2024 9:22:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/28/2024 9:33:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/28/2024 9:33:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/28/2024 9:36:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/28/2024 9:37:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/28/2024 9:37:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/28/2024 9:37:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/28/2024 12:26:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/28/2024 12:26:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/28/2024 1:20:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/28/2024 1:20:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/28/2024 1:26:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/28/2024 1:42:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/28/2024 1:42:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/28/2024 2:21:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/28/2024 2:21:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/28/2024 3:57:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/28/2024 4:38:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/28/2024 4:39:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/28/2024 4:45:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/28/2024 5:10:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/28/2024 5:14:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/28/2024 5:14:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/28/2024 5:15:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/28/2024 5:19:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 10/28/2024 5:25:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 10/28/2024 5:25:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/28/2024 5:35:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/28/2024 5:37:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/28/2024 5:37:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/28/2024 5:38:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/28/2024 5:38:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/28/2024 5:39:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/28/2024 5:39:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/28/2024 5:54:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/28/2024 5:56:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/28/2024 5:56:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/28/2024 5:59:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/28/2024 6:04:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/28/2024 6:09:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/28/2024 6:10:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/28/2024 6:10:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56087 , TIME : 10/28/2024 6:19:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56087 , TIME : 10/28/2024 6:19:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3061 , TIME : 10/28/2024 6:26:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3061 , TIME : 10/28/2024 6:26:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/28/2024 6:27:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/28/2024 6:27:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 6:30:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11877 , TIME : 10/28/2024 6:31:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11877 , TIME : 10/28/2024 6:31:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/28/2024 6:35:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/28/2024 6:35:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/28/2024 6:36:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/28/2024 6:36:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1524145 , TIME : 10/28/2024 6:37:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1524145 , TIME : 10/28/2024 6:37:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/28/2024 6:38:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/28/2024 6:38:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 6:43:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/28/2024 6:52:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/28/2024 6:52:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/28/2024 6:52:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/28/2024 6:53:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/28/2024 6:53:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/28/2024 6:55:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/28/2024 6:55:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 10/28/2024 6:57:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 10/28/2024 6:57:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/28/2024 6:58:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/28/2024 6:58:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55676 , TIME : 10/28/2024 6:59:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55676 , TIME : 10/28/2024 6:59:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/28/2024 6:59:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/28/2024 6:59:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/28/2024 7:00:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55819 , TIME : 10/28/2024 7:00:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2188 , TIME : 10/28/2024 7:01:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2188 , TIME : 10/28/2024 7:01:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/28/2024 7:02:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 10/28/2024 7:04:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 10/28/2024 7:04:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/28/2024 7:08:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/28/2024 7:08:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/28/2024 7:09:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/28/2024 7:09:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/28/2024 7:11:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/28/2024 7:11:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/28/2024 7:16:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/28/2024 7:18:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/28/2024 7:18:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/28/2024 7:19:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/28/2024 7:19:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11559 , TIME : 10/28/2024 7:21:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11559 , TIME : 10/28/2024 7:21:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/28/2024 7:22:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/28/2024 7:22:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/28/2024 7:22:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/28/2024 7:28:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/28/2024 7:28:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/28/2024 7:30:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/28/2024 7:30:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/28/2024 7:30:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/28/2024 7:32:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/28/2024 7:32:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/28/2024 7:33:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/28/2024 7:33:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/28/2024 7:34:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/28/2024 7:34:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/28/2024 7:34:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/28/2024 7:35:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/28/2024 7:35:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/28/2024 7:35:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/28/2024 7:35:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/28/2024 7:35:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/28/2024 7:35:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/28/2024 7:35:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/28/2024 7:38:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/28/2024 7:38:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/28/2024 7:39:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/28/2024 7:39:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/28/2024 7:39:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/28/2024 7:40:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/28/2024 7:40:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/28/2024 7:40:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/28/2024 7:40:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/28/2024 7:40:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11469 , TIME : 10/28/2024 7:41:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/28/2024 7:42:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/28/2024 7:43:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/28/2024 7:43:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/28/2024 7:45:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/28/2024 7:45:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/28/2024 7:46:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/28/2024 7:47:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/28/2024 7:48:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/28/2024 7:48:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/28/2024 7:49:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/28/2024 7:49:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572788 , TIME : 10/28/2024 7:50:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572788 , TIME : 10/28/2024 7:50:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/28/2024 7:57:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/28/2024 7:57:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/28/2024 7:59:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/28/2024 8:02:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/28/2024 8:02:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/28/2024 8:02:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/28/2024 8:03:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/28/2024 8:03:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/28/2024 8:03:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/28/2024 8:04:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/28/2024 8:04:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/28/2024 8:05:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/28/2024 8:06:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/28/2024 8:06:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/28/2024 8:08:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/28/2024 8:09:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/28/2024 8:09:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 10/28/2024 8:09:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3061 , TIME : 10/28/2024 8:11:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3061 , TIME : 10/28/2024 8:11:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/28/2024 8:11:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/28/2024 8:11:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/28/2024 8:13:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/28/2024 8:13:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/28/2024 8:13:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/28/2024 8:13:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/28/2024 8:15:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/28/2024 8:15:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/28/2024 8:15:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/28/2024 8:15:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/28/2024 8:17:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/28/2024 8:17:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/28/2024 8:18:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584467 , TIME : 10/28/2024 8:18:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584467 , TIME : 10/28/2024 8:19:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/28/2024 8:19:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/28/2024 8:20:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/28/2024 8:20:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/28/2024 8:20:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/28/2024 8:20:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/28/2024 8:20:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/28/2024 8:22:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/28/2024 8:22:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4343 , TIME : 10/28/2024 8:25:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/28/2024 8:33:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 10/28/2024 8:34:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/28/2024 8:35:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/28/2024 8:35:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/28/2024 8:40:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/28/2024 8:40:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/28/2024 8:44:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/28/2024 8:44:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/28/2024 8:44:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/28/2024 8:48:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/28/2024 8:56:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/28/2024 8:56:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/28/2024 8:58:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/28/2024 8:59:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/28/2024 8:59:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/28/2024 8:59:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/28/2024 8:59:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/28/2024 8:59:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/28/2024 9:20:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/28/2024 9:20:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/28/2024 9:23:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/28/2024 9:23:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/28/2024 9:24:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/28/2024 9:24:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/28/2024 9:38:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/28/2024 9:38:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/28/2024 9:47:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/28/2024 9:47:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/28/2024 9:47:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/28/2024 9:47:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/28/2024 9:47:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/28/2024 9:49:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/28/2024 9:49:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/28/2024 10:02:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/28/2024 10:03:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/28/2024 10:26:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/28/2024 10:26:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/28/2024 10:26:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/28/2024 10:32:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55655 , TIME : 10/28/2024 10:32:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/28/2024 10:32:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/28/2024 10:36:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/28/2024 10:36:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/28/2024 10:45:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/28/2024 10:46:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/28/2024 10:46:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/28/2024 10:46:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/28/2024 10:46:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 10/28/2024 10:52:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/28/2024 10:53:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/28/2024 10:53:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/28/2024 11:24:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/28/2024 11:24:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 10/28/2024 11:52:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 5:21:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 5:21:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/29/2024 5:21:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/29/2024 6:18:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/29/2024 6:18:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/29/2024 6:29:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/29/2024 6:29:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/29/2024 6:41:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/29/2024 6:41:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/29/2024 6:43:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/29/2024 6:50:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/29/2024 6:51:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 6:53:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/29/2024 7:00:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/29/2024 7:00:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/29/2024 7:03:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/29/2024 7:03:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/29/2024 7:05:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/29/2024 7:05:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/29/2024 7:14:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1586762 , TIME : 10/29/2024 7:14:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/29/2024 7:25:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/29/2024 7:25:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/29/2024 7:26:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/29/2024 7:27:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/29/2024 7:27:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/29/2024 7:31:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/29/2024 7:31:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/29/2024 7:35:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/29/2024 7:35:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/29/2024 7:36:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/29/2024 7:36:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/29/2024 7:36:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/29/2024 7:37:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/29/2024 7:37:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/29/2024 7:37:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/29/2024 7:38:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/29/2024 7:40:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/29/2024 7:40:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/29/2024 7:41:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/29/2024 7:41:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/29/2024 7:42:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/29/2024 7:42:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 7:43:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 7:43:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/29/2024 7:43:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/29/2024 7:43:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/29/2024 7:44:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/29/2024 7:44:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/29/2024 7:44:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/29/2024 7:44:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/29/2024 7:44:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/29/2024 7:44:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/29/2024 7:48:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/29/2024 7:48:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/29/2024 7:50:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/29/2024 7:51:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/29/2024 7:51:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/29/2024 7:51:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/29/2024 7:52:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/29/2024 7:52:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/29/2024 7:52:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/29/2024 7:52:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/29/2024 7:53:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/29/2024 7:53:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/29/2024 7:54:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/29/2024 7:54:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/29/2024 7:56:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/29/2024 7:56:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/29/2024 7:57:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/29/2024 7:57:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/29/2024 7:57:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/29/2024 7:59:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/29/2024 7:59:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/29/2024 7:59:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572788 , TIME : 10/29/2024 8:01:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/29/2024 8:01:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/29/2024 8:02:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/29/2024 8:02:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/29/2024 8:04:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/29/2024 8:04:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/29/2024 8:05:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/29/2024 8:05:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/29/2024 8:08:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10818 , TIME : 10/29/2024 8:09:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10818 , TIME : 10/29/2024 8:09:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/29/2024 8:12:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/29/2024 8:12:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56058 , TIME : 10/29/2024 8:12:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56058 , TIME : 10/29/2024 8:12:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/29/2024 8:12:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/29/2024 8:12:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/29/2024 8:12:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/29/2024 8:12:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/29/2024 8:12:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/29/2024 8:13:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/29/2024 8:13:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55676 , TIME : 10/29/2024 8:13:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/29/2024 8:13:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/29/2024 8:13:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/29/2024 8:13:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/29/2024 8:13:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/29/2024 8:13:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/29/2024 8:14:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/29/2024 8:14:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/29/2024 8:15:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/29/2024 8:16:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/29/2024 8:16:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 10/29/2024 8:16:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 10/29/2024 8:16:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56173 , TIME : 10/29/2024 8:18:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/29/2024 8:23:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/29/2024 8:23:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/29/2024 8:23:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/29/2024 8:23:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/29/2024 8:23:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/29/2024 8:23:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/29/2024 8:23:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/29/2024 8:23:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/29/2024 8:23:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/29/2024 8:25:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/29/2024 8:25:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/29/2024 8:25:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/29/2024 8:26:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/29/2024 8:26:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/29/2024 8:26:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/29/2024 8:26:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/29/2024 8:28:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/29/2024 8:28:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/29/2024 8:29:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/29/2024 8:29:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/29/2024 8:29:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/29/2024 8:32:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/29/2024 8:32:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/29/2024 8:33:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/29/2024 8:33:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/29/2024 8:35:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/29/2024 8:38:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/29/2024 8:38:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/29/2024 8:38:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/29/2024 8:39:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/29/2024 8:41:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/29/2024 8:43:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/29/2024 8:43:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/29/2024 8:43:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/29/2024 8:43:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/29/2024 8:43:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/29/2024 8:43:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/29/2024 8:43:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/29/2024 8:43:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/29/2024 8:44:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/29/2024 8:44:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1524145 , TIME : 10/29/2024 8:46:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1524145 , TIME : 10/29/2024 8:46:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11517 , TIME : 10/29/2024 8:46:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/29/2024 8:49:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3985 , TIME : 10/29/2024 8:50:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/29/2024 8:55:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/29/2024 8:55:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/29/2024 8:56:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/29/2024 8:56:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 10/29/2024 9:03:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/29/2024 9:25:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/29/2024 9:25:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/29/2024 9:25:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/29/2024 9:25:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/29/2024 9:25:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/29/2024 9:25:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 10/29/2024 10:24:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 10/29/2024 10:24:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/29/2024 10:33:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/29/2024 10:33:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/29/2024 10:33:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/29/2024 11:31:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 10/29/2024 11:31:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/29/2024 1:22:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/29/2024 1:47:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/29/2024 3:11:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/29/2024 3:19:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/29/2024 3:19:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/29/2024 3:19:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/29/2024 3:19:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/29/2024 3:33:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/29/2024 4:20:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/29/2024 4:20:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/29/2024 5:00:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/29/2024 5:03:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/29/2024 5:03:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 10/29/2024 5:06:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 10/29/2024 5:06:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/29/2024 5:06:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/29/2024 5:06:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/29/2024 5:06:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/29/2024 5:23:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/29/2024 5:30:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/29/2024 5:30:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 10/29/2024 5:37:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 10/29/2024 5:38:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 10/29/2024 5:38:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 10/29/2024 5:38:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 10/29/2024 5:38:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/29/2024 5:52:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/29/2024 5:52:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/29/2024 5:52:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/29/2024 5:52:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/29/2024 5:59:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/29/2024 6:10:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/29/2024 6:11:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/29/2024 6:11:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/29/2024 6:12:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/29/2024 6:12:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2012 , TIME : 10/29/2024 6:13:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/29/2024 6:17:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/29/2024 6:17:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 6:18:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 6:18:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/29/2024 6:24:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/29/2024 6:24:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/29/2024 6:24:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/29/2024 6:24:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 10/29/2024 6:29:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 10/29/2024 6:29:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 6:30:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 6:30:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/29/2024 6:33:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/29/2024 6:33:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/29/2024 6:34:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56058 , TIME : 10/29/2024 6:48:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56058 , TIME : 10/29/2024 6:48:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/29/2024 6:51:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/29/2024 6:51:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/29/2024 6:52:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11925 , TIME : 10/29/2024 6:54:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11925 , TIME : 10/29/2024 6:54:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 6:54:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/29/2024 6:54:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/29/2024 6:54:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56064 , TIME : 10/29/2024 6:56:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 10/29/2024 6:56:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 10/29/2024 6:56:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55819 , TIME : 10/29/2024 6:56:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/29/2024 6:56:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 10/29/2024 6:57:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 10/29/2024 6:57:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 10/29/2024 6:58:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 10/29/2024 6:58:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55977 , TIME : 10/29/2024 6:59:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55977 , TIME : 10/29/2024 6:59:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/29/2024 7:00:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/29/2024 7:00:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/29/2024 7:01:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/29/2024 7:01:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 10/29/2024 7:02:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 10/29/2024 7:02:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 10/29/2024 7:02:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 10/29/2024 7:02:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/29/2024 7:02:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/29/2024 7:02:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/29/2024 7:02:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 10/29/2024 7:03:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 10/29/2024 7:03:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/29/2024 7:03:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/29/2024 7:03:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 10/29/2024 7:05:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 10/29/2024 7:05:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/29/2024 7:09:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/29/2024 7:09:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/29/2024 7:10:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/29/2024 7:10:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/29/2024 7:12:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/29/2024 7:12:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/29/2024 7:17:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/29/2024 7:17:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 10/29/2024 7:18:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 10/29/2024 7:18:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/29/2024 7:19:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/29/2024 7:19:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/29/2024 7:20:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/29/2024 7:20:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/29/2024 7:20:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/29/2024 7:20:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/29/2024 7:20:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/29/2024 7:25:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/29/2024 7:25:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/29/2024 7:25:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/29/2024 7:25:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/29/2024 7:26:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/29/2024 7:26:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/29/2024 7:29:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/29/2024 7:29:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/29/2024 7:29:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/29/2024 7:29:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/29/2024 7:29:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1524145 , TIME : 10/29/2024 7:29:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1524145 , TIME : 10/29/2024 7:29:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/29/2024 7:30:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/29/2024 7:30:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/29/2024 7:32:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 10/29/2024 7:32:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/29/2024 7:35:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/29/2024 7:35:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/29/2024 7:35:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/29/2024 7:35:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/29/2024 7:37:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/29/2024 7:37:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/29/2024 7:37:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/29/2024 7:37:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/29/2024 7:37:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11845 , TIME : 10/29/2024 7:39:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/29/2024 7:39:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/29/2024 7:39:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/29/2024 7:39:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/29/2024 7:39:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/29/2024 7:39:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/29/2024 7:39:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/29/2024 7:40:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/29/2024 7:40:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/29/2024 7:40:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/29/2024 7:40:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/29/2024 7:41:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/29/2024 7:41:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 10/29/2024 7:42:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/29/2024 7:44:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/29/2024 7:44:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/29/2024 7:45:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/29/2024 7:45:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/29/2024 7:45:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/29/2024 7:47:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/29/2024 7:47:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/29/2024 7:53:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/29/2024 7:53:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/29/2024 7:53:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/29/2024 7:53:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/29/2024 7:54:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/29/2024 7:54:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/29/2024 7:54:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/29/2024 7:54:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/29/2024 7:58:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 10/29/2024 7:58:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 10/29/2024 7:58:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/29/2024 7:59:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/29/2024 7:59:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/29/2024 8:02:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/29/2024 8:02:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/29/2024 8:03:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/29/2024 8:03:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/29/2024 8:07:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/29/2024 8:07:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/29/2024 8:08:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/29/2024 8:08:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/29/2024 8:08:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/29/2024 8:08:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/29/2024 8:10:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/29/2024 8:10:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/29/2024 8:10:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/29/2024 8:11:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/29/2024 8:11:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/29/2024 8:11:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3812 , TIME : 10/29/2024 8:12:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3812 , TIME : 10/29/2024 8:12:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3811 , TIME : 10/29/2024 8:13:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/29/2024 8:13:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/29/2024 8:13:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/29/2024 8:13:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 10/29/2024 8:14:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 10/29/2024 8:14:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54226 , TIME : 10/29/2024 8:15:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54226 , TIME : 10/29/2024 8:15:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 10/29/2024 8:15:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 10/29/2024 8:16:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/29/2024 8:17:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/29/2024 8:17:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/29/2024 8:17:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3941 , TIME : 10/29/2024 8:18:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3941 , TIME : 10/29/2024 8:18:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56186 , TIME : 10/29/2024 8:19:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55609 , TIME : 10/29/2024 8:19:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 10/29/2024 8:20:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 10/29/2024 8:20:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/29/2024 8:21:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/29/2024 8:21:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/29/2024 8:21:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/29/2024 8:21:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/29/2024 8:21:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/29/2024 8:21:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/29/2024 8:21:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/29/2024 8:21:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55815 , TIME : 10/29/2024 8:22:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55815 , TIME : 10/29/2024 8:22:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56225 , TIME : 10/29/2024 8:23:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56225 , TIME : 10/29/2024 8:23:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/29/2024 8:24:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/29/2024 8:24:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 10/29/2024 8:25:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 10/29/2024 8:25:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55804 , TIME : 10/29/2024 8:26:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 10/29/2024 8:29:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 10/29/2024 8:29:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/29/2024 8:36:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/29/2024 8:36:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9556 , TIME : 10/29/2024 8:47:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9556 , TIME : 10/29/2024 8:47:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/29/2024 8:48:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/29/2024 8:48:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11877 , TIME : 10/29/2024 8:49:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11877 , TIME : 10/29/2024 8:49:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/29/2024 8:50:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/29/2024 8:50:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/29/2024 8:52:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/29/2024 8:53:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/29/2024 8:55:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/29/2024 8:55:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11517 , TIME : 10/29/2024 8:57:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/29/2024 9:05:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/29/2024 9:10:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/29/2024 9:10:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11037 , TIME : 10/29/2024 9:12:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11037 , TIME : 10/29/2024 9:12:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/29/2024 9:13:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/29/2024 9:13:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/29/2024 9:20:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/29/2024 9:28:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/29/2024 9:30:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/29/2024 9:30:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/29/2024 9:30:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/29/2024 9:32:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/29/2024 9:33:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/29/2024 9:38:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/29/2024 9:44:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/29/2024 9:44:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/29/2024 9:44:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/29/2024 9:45:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/29/2024 9:53:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/29/2024 9:57:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/29/2024 9:57:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/29/2024 10:02:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/29/2024 10:02:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/29/2024 10:16:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/29/2024 10:16:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/29/2024 10:21:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/29/2024 10:21:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/29/2024 10:25:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/29/2024 10:25:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/29/2024 10:27:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/29/2024 10:27:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/29/2024 10:27:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/29/2024 10:39:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/29/2024 10:39:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/29/2024 10:42:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/29/2024 10:43:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/29/2024 10:44:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/29/2024 10:44:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 10/29/2024 10:49:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 10/29/2024 10:49:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/29/2024 11:10:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/29/2024 11:10:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1730 , TIME : 10/30/2024 12:13:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/30/2024 12:38:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/30/2024 5:22:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/30/2024 5:23:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/30/2024 5:23:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/30/2024 6:18:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/30/2024 6:18:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 10/30/2024 6:21:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 10/30/2024 6:21:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/30/2024 6:47:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/30/2024 6:47:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/30/2024 6:48:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/30/2024 6:53:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/30/2024 6:53:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/30/2024 6:53:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/30/2024 6:53:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/30/2024 6:55:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/30/2024 6:55:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/30/2024 6:56:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/30/2024 7:12:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/30/2024 7:12:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/30/2024 7:14:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/30/2024 7:14:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/30/2024 7:24:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/30/2024 7:25:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/30/2024 7:25:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/30/2024 7:26:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/30/2024 7:26:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/30/2024 7:26:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/30/2024 7:26:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 10/30/2024 7:27:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 10/30/2024 7:27:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 10/30/2024 7:32:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 10/30/2024 7:34:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/30/2024 7:34:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/30/2024 7:35:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/30/2024 7:35:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/30/2024 7:36:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/30/2024 7:36:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/30/2024 7:37:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/30/2024 7:37:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/30/2024 7:38:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/30/2024 7:38:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/30/2024 7:38:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/30/2024 7:38:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/30/2024 7:38:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/30/2024 7:38:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/30/2024 7:38:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/30/2024 7:38:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/30/2024 7:39:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/30/2024 7:40:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 10/30/2024 7:40:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 10/30/2024 7:41:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/30/2024 7:43:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/30/2024 7:43:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/30/2024 7:45:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/30/2024 7:45:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/30/2024 7:45:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/30/2024 7:45:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/30/2024 7:45:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/30/2024 7:45:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/30/2024 7:47:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/30/2024 7:47:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/30/2024 7:47:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/30/2024 7:47:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/30/2024 7:48:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/30/2024 7:48:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/30/2024 7:49:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 10/30/2024 7:50:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 10/30/2024 7:50:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 10/30/2024 7:52:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 10/30/2024 7:52:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/30/2024 7:53:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/30/2024 7:54:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/30/2024 7:54:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/30/2024 7:54:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/30/2024 7:54:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/30/2024 7:54:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/30/2024 7:54:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/30/2024 7:54:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/30/2024 7:57:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/30/2024 7:57:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/30/2024 7:58:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/30/2024 7:58:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/30/2024 7:58:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/30/2024 7:59:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/30/2024 7:59:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/30/2024 7:59:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/30/2024 8:00:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/30/2024 8:00:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/30/2024 8:02:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/30/2024 8:02:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/30/2024 8:04:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/30/2024 8:04:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 10/30/2024 8:05:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 10/30/2024 8:05:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/30/2024 8:06:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/30/2024 8:06:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/30/2024 8:06:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/30/2024 8:06:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/30/2024 8:09:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 10/30/2024 8:09:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 10/30/2024 8:09:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/30/2024 8:10:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/30/2024 8:10:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/30/2024 8:10:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/30/2024 8:10:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/30/2024 8:11:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 10/30/2024 8:11:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/30/2024 8:11:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/30/2024 8:12:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/30/2024 8:12:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/30/2024 8:12:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/30/2024 8:12:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/30/2024 8:12:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/30/2024 8:12:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/30/2024 8:12:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/30/2024 8:12:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/30/2024 8:12:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/30/2024 8:12:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/30/2024 8:12:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/30/2024 8:12:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/30/2024 8:12:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/30/2024 8:13:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/30/2024 8:13:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/30/2024 8:13:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/30/2024 8:13:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/30/2024 8:13:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/30/2024 8:15:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/30/2024 8:15:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/30/2024 8:15:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/30/2024 8:15:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/30/2024 8:16:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/30/2024 8:16:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/30/2024 8:17:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/30/2024 8:17:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/30/2024 8:17:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/30/2024 8:18:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/30/2024 8:18:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/30/2024 8:18:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/30/2024 8:18:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/30/2024 8:19:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/30/2024 8:19:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/30/2024 8:19:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/30/2024 8:20:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/30/2024 8:21:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/30/2024 8:21:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/30/2024 8:21:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2012 , TIME : 10/30/2024 8:23:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/30/2024 8:24:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/30/2024 8:24:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/30/2024 8:25:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/30/2024 8:25:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/30/2024 8:25:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 10/30/2024 8:25:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 10/30/2024 8:25:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 10/30/2024 8:25:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/30/2024 8:26:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/30/2024 8:26:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/30/2024 8:26:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/30/2024 8:26:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572788 , TIME : 10/30/2024 8:28:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/30/2024 8:29:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 10/30/2024 8:29:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/30/2024 8:29:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/30/2024 8:29:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/30/2024 8:29:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/30/2024 8:36:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/30/2024 8:36:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/30/2024 8:36:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/30/2024 8:36:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/30/2024 8:36:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/30/2024 8:38:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/30/2024 8:40:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/30/2024 8:41:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/30/2024 8:41:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/30/2024 8:42:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/30/2024 8:42:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/30/2024 8:43:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/30/2024 8:43:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/30/2024 8:43:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/30/2024 8:44:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/30/2024 8:44:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/30/2024 8:44:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/30/2024 8:44:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/30/2024 8:51:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/30/2024 8:51:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/30/2024 8:51:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/30/2024 8:51:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11877 , TIME : 10/30/2024 8:52:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/30/2024 8:54:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1524145 , TIME : 10/30/2024 8:55:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/30/2024 8:58:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/30/2024 8:58:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/30/2024 8:59:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/30/2024 8:59:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/30/2024 8:59:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/30/2024 9:02:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/30/2024 9:02:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 10/30/2024 9:07:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/30/2024 9:11:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/30/2024 9:11:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11517 , TIME : 10/30/2024 9:17:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 10/30/2024 9:23:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/30/2024 9:24:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/30/2024 9:24:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11158 , TIME : 10/30/2024 9:33:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11158 , TIME : 10/30/2024 9:33:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/30/2024 9:44:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/30/2024 9:44:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/30/2024 10:12:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/30/2024 10:26:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/30/2024 10:26:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/30/2024 10:29:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/30/2024 10:29:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/30/2024 10:49:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/30/2024 1:01:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/30/2024 1:01:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/30/2024 1:48:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/30/2024 1:48:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 10/30/2024 2:46:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11322 , TIME : 10/30/2024 2:54:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11322 , TIME : 10/30/2024 2:54:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 10/30/2024 3:02:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 10/30/2024 3:02:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4343 , TIME : 10/30/2024 4:13:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4343 , TIME : 10/30/2024 4:13:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/30/2024 5:15:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/30/2024 5:30:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/30/2024 5:40:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/30/2024 5:42:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/30/2024 5:42:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/30/2024 5:59:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/30/2024 6:07:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/30/2024 6:07:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/30/2024 6:13:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/30/2024 6:17:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/30/2024 6:32:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/30/2024 6:32:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/30/2024 6:34:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/30/2024 6:34:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/30/2024 6:43:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/30/2024 6:44:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2012 , TIME : 10/30/2024 6:45:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2012 , TIME : 10/30/2024 6:45:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/30/2024 6:46:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/30/2024 6:47:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/30/2024 6:47:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/30/2024 6:48:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/30/2024 6:49:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/30/2024 6:50:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/30/2024 6:50:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/30/2024 6:53:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/30/2024 6:57:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/30/2024 6:57:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/30/2024 6:57:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/30/2024 6:57:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/30/2024 6:58:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/30/2024 7:02:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/30/2024 7:05:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/30/2024 7:05:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/30/2024 7:05:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/30/2024 7:05:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/30/2024 7:06:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/30/2024 7:06:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 10/30/2024 7:06:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 10/30/2024 7:06:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/30/2024 7:06:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/30/2024 7:10:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 10/30/2024 7:10:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/30/2024 7:10:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/30/2024 7:12:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/30/2024 7:15:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572788 , TIME : 10/30/2024 7:15:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/30/2024 7:15:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/30/2024 7:15:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/30/2024 7:17:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/30/2024 7:18:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/30/2024 7:18:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 10/30/2024 7:20:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/30/2024 7:21:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/30/2024 7:21:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/30/2024 7:21:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/30/2024 7:21:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/30/2024 7:21:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/30/2024 7:21:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/30/2024 7:22:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/30/2024 7:22:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/30/2024 7:27:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/30/2024 7:27:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/30/2024 7:27:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/30/2024 7:27:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/30/2024 7:27:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/30/2024 7:30:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/30/2024 7:30:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/30/2024 7:30:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/30/2024 7:30:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/30/2024 7:31:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 10/30/2024 7:31:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/30/2024 7:32:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/30/2024 7:32:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/30/2024 7:32:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/30/2024 7:34:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/30/2024 7:34:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/30/2024 7:34:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/30/2024 7:34:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/30/2024 7:34:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/30/2024 7:35:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/30/2024 7:35:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/30/2024 7:35:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/30/2024 7:36:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/30/2024 7:36:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/30/2024 7:36:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/30/2024 7:36:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/30/2024 7:36:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/30/2024 7:36:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/30/2024 7:37:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/30/2024 7:37:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/30/2024 7:37:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/30/2024 7:37:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/30/2024 7:38:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/30/2024 7:40:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/30/2024 7:40:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/30/2024 7:40:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/30/2024 7:40:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/30/2024 7:40:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/30/2024 7:40:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/30/2024 7:41:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/30/2024 7:41:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/30/2024 7:42:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/30/2024 7:42:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/30/2024 7:42:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/30/2024 7:42:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/30/2024 7:42:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/30/2024 7:42:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/30/2024 7:42:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/30/2024 7:42:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/30/2024 7:42:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 10/30/2024 7:43:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 10/30/2024 7:43:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/30/2024 7:43:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/30/2024 7:43:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/30/2024 7:45:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/30/2024 7:45:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/30/2024 7:45:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 10/30/2024 7:47:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 10/30/2024 7:47:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/30/2024 7:49:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/30/2024 7:49:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/30/2024 7:49:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/30/2024 7:49:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/30/2024 7:54:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11845 , TIME : 10/30/2024 7:54:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11845 , TIME : 10/30/2024 7:54:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 10/30/2024 7:58:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 10/30/2024 7:58:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/30/2024 7:58:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/30/2024 7:58:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/30/2024 7:58:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/30/2024 7:58:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 10/30/2024 7:59:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 10/30/2024 7:59:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/30/2024 7:59:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/30/2024 7:59:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/30/2024 8:00:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/30/2024 8:00:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 10/30/2024 8:01:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/30/2024 8:02:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/30/2024 8:02:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/30/2024 8:05:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/30/2024 8:05:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/30/2024 8:05:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/30/2024 8:05:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/30/2024 8:06:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/30/2024 8:06:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 10/30/2024 8:07:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 10/30/2024 8:07:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 10/30/2024 8:07:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 10/30/2024 8:07:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/30/2024 8:08:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/30/2024 8:08:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/30/2024 8:08:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/30/2024 8:08:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/30/2024 8:08:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/30/2024 8:10:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/30/2024 8:10:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/30/2024 8:10:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/30/2024 8:10:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/30/2024 8:10:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/30/2024 8:10:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 10/30/2024 8:10:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 10/30/2024 8:10:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11517 , TIME : 10/30/2024 8:11:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 10/30/2024 8:13:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/30/2024 8:14:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/30/2024 8:14:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 10/30/2024 8:14:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 10/30/2024 8:14:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/30/2024 8:18:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/30/2024 8:18:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/30/2024 8:19:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/30/2024 8:19:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/30/2024 8:19:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 10/30/2024 8:20:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/30/2024 8:20:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/30/2024 8:21:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 10/30/2024 8:21:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/30/2024 8:21:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/30/2024 8:26:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/30/2024 8:26:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/30/2024 8:26:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/30/2024 8:26:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56186 , TIME : 10/30/2024 8:27:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56186 , TIME : 10/30/2024 8:27:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53058 , TIME : 10/30/2024 8:28:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/30/2024 8:39:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/30/2024 8:41:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/30/2024 8:42:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/30/2024 8:42:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/30/2024 8:42:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 10/30/2024 8:44:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572753 , TIME : 10/30/2024 8:45:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572753 , TIME : 10/30/2024 8:45:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/30/2024 8:47:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/30/2024 8:47:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/30/2024 8:59:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/30/2024 8:59:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/30/2024 9:05:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/30/2024 9:05:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/30/2024 9:05:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/30/2024 9:05:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 10/30/2024 9:12:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/30/2024 9:21:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/30/2024 9:25:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/30/2024 9:25:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/30/2024 9:34:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/30/2024 9:34:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54226 , TIME : 10/30/2024 9:34:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55815 , TIME : 10/30/2024 9:37:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55815 , TIME : 10/30/2024 9:37:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/30/2024 9:43:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/30/2024 9:43:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/30/2024 9:44:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/30/2024 9:44:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 10/30/2024 9:54:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 10/30/2024 9:54:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/30/2024 9:56:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/30/2024 10:00:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/30/2024 10:00:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/30/2024 10:04:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/30/2024 10:08:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 10/30/2024 10:09:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11037 , TIME : 10/30/2024 10:11:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11037 , TIME : 10/30/2024 10:11:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11037 , TIME : 10/30/2024 10:11:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11322 , TIME : 10/30/2024 10:11:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11322 , TIME : 10/30/2024 10:11:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/30/2024 10:11:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/30/2024 10:11:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/30/2024 10:11:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/30/2024 10:11:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/30/2024 10:11:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/30/2024 10:15:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/30/2024 10:15:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 10/30/2024 10:31:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/30/2024 10:43:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/30/2024 10:43:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56236 , TIME : 10/30/2024 10:52:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/30/2024 10:59:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/30/2024 10:59:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/30/2024 10:59:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/30/2024 10:59:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/30/2024 11:04:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/30/2024 11:40:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/30/2024 11:40:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1730 , TIME : 10/31/2024 12:10:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 10/31/2024 2:44:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/31/2024 5:11:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/31/2024 5:11:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/31/2024 5:11:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/31/2024 5:25:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/31/2024 5:25:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/31/2024 6:00:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/31/2024 6:00:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 10/31/2024 6:04:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11845 , TIME : 10/31/2024 6:07:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11845 , TIME : 10/31/2024 6:07:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/31/2024 6:39:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/31/2024 6:39:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/31/2024 6:41:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/31/2024 6:41:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/31/2024 6:44:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/31/2024 6:44:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3311 , TIME : 10/31/2024 7:01:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3311 , TIME : 10/31/2024 7:01:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/31/2024 7:01:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/31/2024 7:01:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/31/2024 7:03:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/31/2024 7:03:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11333 , TIME : 10/31/2024 7:05:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56186 , TIME : 10/31/2024 7:06:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/31/2024 7:07:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 10/31/2024 7:07:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/31/2024 7:08:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/31/2024 7:08:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/31/2024 7:08:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/31/2024 7:12:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 10/31/2024 7:12:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/31/2024 7:14:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 10/31/2024 7:14:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/31/2024 7:17:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/31/2024 7:17:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 10/31/2024 7:19:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 10/31/2024 7:19:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/31/2024 7:19:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 10/31/2024 7:20:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/31/2024 7:20:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 10/31/2024 7:21:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/31/2024 7:24:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/31/2024 7:25:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/31/2024 7:25:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/31/2024 7:25:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/31/2024 7:26:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 10/31/2024 7:26:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/31/2024 7:26:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/31/2024 7:26:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/31/2024 7:29:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/31/2024 7:31:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/31/2024 7:31:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 10/31/2024 7:31:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/31/2024 7:32:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/31/2024 7:32:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/31/2024 7:32:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/31/2024 7:35:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/31/2024 7:36:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 10/31/2024 7:36:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/31/2024 7:36:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 10/31/2024 7:36:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/31/2024 7:37:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/31/2024 7:37:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/31/2024 7:38:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/31/2024 7:38:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 10/31/2024 7:41:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/31/2024 7:43:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/31/2024 7:43:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/31/2024 7:44:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/31/2024 7:47:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/31/2024 7:47:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/31/2024 7:49:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/31/2024 7:50:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/31/2024 7:50:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/31/2024 7:51:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/31/2024 7:51:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 10/31/2024 7:52:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 10/31/2024 7:52:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/31/2024 7:52:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/31/2024 7:52:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/31/2024 7:54:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/31/2024 7:54:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/31/2024 7:54:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/31/2024 7:54:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 10/31/2024 7:56:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 10/31/2024 7:59:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/31/2024 8:00:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/31/2024 8:01:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/31/2024 8:01:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 10/31/2024 8:01:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/31/2024 8:01:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/31/2024 8:03:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 10/31/2024 8:03:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/31/2024 8:03:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 10/31/2024 8:03:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/31/2024 8:03:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/31/2024 8:03:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 10/31/2024 8:04:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 10/31/2024 8:04:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 10/31/2024 8:04:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11877 , TIME : 10/31/2024 8:05:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11877 , TIME : 10/31/2024 8:05:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 10/31/2024 8:06:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/31/2024 8:07:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/31/2024 8:07:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/31/2024 8:07:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/31/2024 8:08:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/31/2024 8:09:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/31/2024 8:09:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/31/2024 8:10:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 10/31/2024 8:10:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/31/2024 8:11:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/31/2024 8:11:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/31/2024 8:11:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/31/2024 8:11:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/31/2024 8:12:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/31/2024 8:12:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 10/31/2024 8:13:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 10/31/2024 8:13:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/31/2024 8:13:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/31/2024 8:13:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/31/2024 8:13:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/31/2024 8:13:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/31/2024 8:13:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/31/2024 8:13:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/31/2024 8:13:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/31/2024 8:13:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/31/2024 8:13:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/31/2024 8:13:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/31/2024 8:14:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/31/2024 8:14:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56064 , TIME : 10/31/2024 8:14:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 10/31/2024 8:15:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/31/2024 8:15:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/31/2024 8:15:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/31/2024 8:15:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/31/2024 8:16:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/31/2024 8:16:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/31/2024 8:16:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 10/31/2024 8:17:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/31/2024 8:17:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/31/2024 8:17:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/31/2024 8:17:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/31/2024 8:17:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/31/2024 8:19:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 10/31/2024 8:19:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/31/2024 8:21:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/31/2024 8:21:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/31/2024 8:28:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 10/31/2024 8:28:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/31/2024 8:30:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/31/2024 8:30:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/31/2024 8:32:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 10/31/2024 8:38:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/31/2024 8:38:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/31/2024 8:38:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/31/2024 8:40:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/31/2024 8:40:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/31/2024 8:42:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 10/31/2024 8:42:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/31/2024 8:43:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/31/2024 8:43:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/31/2024 8:43:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/31/2024 8:53:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11517 , TIME : 10/31/2024 8:55:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/31/2024 8:58:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 10/31/2024 8:58:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 10/31/2024 8:59:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/31/2024 9:05:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/31/2024 9:05:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 10/31/2024 9:48:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/31/2024 9:56:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/31/2024 9:56:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/31/2024 9:59:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 10/31/2024 10:52:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 10/31/2024 10:52:02 AM
+--Service is stopped at 10/31/2024 11:58:06 AM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_11_4_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_11_4_2024.txt
new file mode 100644
index 0000000..3f30d15
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_11_4_2024.txt
@@ -0,0 +1,1990 @@
+--Service is started at 11/4/2024 10:22:58 AM
+MACHINE : 192.168.6.9 : NO DATA
+MACHINE : 172.16.50.9 : NOT CONNECTED
+MACHINE : 172.16.50.7 : NOT CONNECTED
+MACHINE : 172.16.50.8 : NOT CONNECTED
+MACHINE : 192.168.52.18 : NO DATA
+MACHINE : 192.168.52.19 : NO DATA
+MACHINE : 192.168.85.201 : NO DATA
+MACHINE : 192.168.85.202 : NOT CONNECTED
+MACHINE : 172.16.53.9 : , EMP NO : 5556 , TIME : 11/4/2024 10:23:23 AM
+MACHINE : 172.16.53.9 : , EMP NO : 3639 , TIME : 11/4/2024 10:23:33 AM
+MACHINE : 172.16.53.9 : , EMP NO : 1589766 , TIME : 11/4/2024 10:23:53 AM
+MACHINE : 172.16.53.9 : , EMP NO : 1589317 , TIME : 11/4/2024 10:24:05 AM
+MACHINE : 18, TOTAL EMP : 734
+MACHINE : 192.168.50.3 : NO DATA
+MACHINE : 192.168.70.27 : NO DATA
+MACHINE : 192.168.86.186 : NOT CONNECTED
+MACHINE : 172.16.53.8 : NO DATA
+MACHINE : 10.0.0.5 : NOT CONNECTED
+MACHINE : 192.168.100.13 : NOT CONNECTED
+MACHINE : 172.16.1.95 : NOT CONNECTED
+MACHINE : 172.16.1.96 : NOT CONNECTED
+MACHINE : 192.168.9.169 : , EMP NO : 2495 , TIME : 11/4/2024 10:26:33 AM
+MACHINE : 6, TOTAL EMP : 164
+MACHINE : 192.168.52.16 : NO DATA
+MACHINE : 192.168.52.17 : NO DATA
+MACHINE : 192.168.19.5 : NOT CONNECTED
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 12:05:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 10/31/2024 12:29:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 10/31/2024 12:29:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 10/31/2024 12:29:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 10/31/2024 12:29:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/31/2024 12:42:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/31/2024 12:47:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/31/2024 1:13:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/31/2024 1:13:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/31/2024 1:43:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/31/2024 1:43:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/31/2024 1:52:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 10/31/2024 1:52:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 1:56:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 1:56:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 1:57:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 1:58:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 10/31/2024 2:22:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11158 , TIME : 10/31/2024 2:41:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11158 , TIME : 10/31/2024 2:41:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/31/2024 3:10:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 4:06:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/31/2024 5:17:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 10/31/2024 5:19:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/31/2024 5:23:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 10/31/2024 5:23:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 10/31/2024 5:41:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/31/2024 5:43:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 10/31/2024 5:43:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 5:45:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 5:45:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 10/31/2024 5:46:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/31/2024 5:51:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 10/31/2024 5:52:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/31/2024 5:54:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 10/31/2024 5:54:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/31/2024 6:06:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/31/2024 6:06:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 10/31/2024 6:06:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 10/31/2024 6:13:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/31/2024 6:13:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/31/2024 6:13:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4534 , TIME : 10/31/2024 6:14:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4534 , TIME : 10/31/2024 6:15:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/31/2024 6:18:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 10/31/2024 6:18:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/31/2024 6:21:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 10/31/2024 6:21:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/31/2024 6:26:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 10/31/2024 6:26:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/31/2024 6:29:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585231 , TIME : 10/31/2024 6:29:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/31/2024 6:34:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/31/2024 6:34:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 10/31/2024 6:36:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 10/31/2024 6:36:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/31/2024 6:39:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 10/31/2024 6:39:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/31/2024 6:43:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 10/31/2024 6:43:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/31/2024 6:43:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 10/31/2024 6:43:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/31/2024 6:47:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 10/31/2024 6:47:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56058 , TIME : 10/31/2024 6:47:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/31/2024 6:51:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 10/31/2024 6:51:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11198 , TIME : 10/31/2024 6:53:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11198 , TIME : 10/31/2024 6:53:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56136 , TIME : 10/31/2024 6:55:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56136 , TIME : 10/31/2024 6:55:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/31/2024 6:56:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 10/31/2024 6:56:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 10/31/2024 6:56:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 10/31/2024 6:56:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572788 , TIME : 10/31/2024 6:56:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54546 , TIME : 10/31/2024 6:57:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54546 , TIME : 10/31/2024 6:57:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 10/31/2024 6:58:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 10/31/2024 6:58:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 10/31/2024 6:59:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55676 , TIME : 10/31/2024 6:59:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55676 , TIME : 10/31/2024 6:59:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 10/31/2024 7:01:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 10/31/2024 7:01:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 10/31/2024 7:01:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 10/31/2024 7:01:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/31/2024 7:01:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 10/31/2024 7:01:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55994 , TIME : 10/31/2024 7:03:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/31/2024 7:03:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 10/31/2024 7:03:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 10/31/2024 7:08:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 10/31/2024 7:10:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 10/31/2024 7:10:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55293 , TIME : 10/31/2024 7:12:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55293 , TIME : 10/31/2024 7:12:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10791 , TIME : 10/31/2024 7:13:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10791 , TIME : 10/31/2024 7:13:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 10/31/2024 7:14:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/31/2024 7:15:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 10/31/2024 7:15:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 10/31/2024 7:16:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 10/31/2024 7:17:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/31/2024 7:17:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 10/31/2024 7:17:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 10/31/2024 7:18:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 10/31/2024 7:18:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9120 , TIME : 10/31/2024 7:21:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9120 , TIME : 10/31/2024 7:21:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/31/2024 7:21:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 10/31/2024 7:21:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/31/2024 7:21:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 10/31/2024 7:21:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55626 , TIME : 10/31/2024 7:22:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55626 , TIME : 10/31/2024 7:22:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/31/2024 7:22:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 10/31/2024 7:22:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 10/31/2024 7:22:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11845 , TIME : 10/31/2024 7:22:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11845 , TIME : 10/31/2024 7:22:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56008 , TIME : 10/31/2024 7:24:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/31/2024 7:25:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 10/31/2024 7:25:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/31/2024 7:25:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 10/31/2024 7:25:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 10/31/2024 7:26:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 10/31/2024 7:26:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54546 , TIME : 10/31/2024 7:26:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/31/2024 7:27:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 10/31/2024 7:27:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 10/31/2024 7:27:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 10/31/2024 7:29:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/31/2024 7:29:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/31/2024 7:29:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 10/31/2024 7:29:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/31/2024 7:29:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 10/31/2024 7:29:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/31/2024 7:30:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 10/31/2024 7:30:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 10/31/2024 7:30:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/31/2024 7:31:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 10/31/2024 7:31:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/31/2024 7:33:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 10/31/2024 7:33:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/31/2024 7:34:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/31/2024 7:34:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 10/31/2024 7:34:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/31/2024 7:35:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 10/31/2024 7:35:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 10/31/2024 7:35:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 10/31/2024 7:35:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 10/31/2024 7:36:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/31/2024 7:36:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 10/31/2024 7:37:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/31/2024 7:37:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 10/31/2024 7:37:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/31/2024 7:37:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 10/31/2024 7:37:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/31/2024 7:38:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 10/31/2024 7:38:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3347 , TIME : 10/31/2024 7:39:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3347 , TIME : 10/31/2024 7:39:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/31/2024 7:39:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 10/31/2024 7:39:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/31/2024 7:39:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 10/31/2024 7:39:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 10/31/2024 7:40:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 10/31/2024 7:40:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 10/31/2024 7:40:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/31/2024 7:40:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 10/31/2024 7:40:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 10/31/2024 7:41:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 10/31/2024 7:41:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 10/31/2024 7:41:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 10/31/2024 7:42:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/31/2024 7:42:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/31/2024 7:42:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 10/31/2024 7:42:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 10/31/2024 7:42:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 10/31/2024 7:42:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/31/2024 7:43:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 10/31/2024 7:43:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/31/2024 7:43:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 10/31/2024 7:43:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/31/2024 7:45:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 10/31/2024 7:45:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 10/31/2024 7:45:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/31/2024 7:46:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 10/31/2024 7:46:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 10/31/2024 7:47:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/31/2024 7:47:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 10/31/2024 7:47:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 10/31/2024 7:52:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/31/2024 7:58:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 10/31/2024 7:58:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8380 , TIME : 10/31/2024 7:59:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8380 , TIME : 10/31/2024 7:59:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/31/2024 8:00:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 10/31/2024 8:00:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 10/31/2024 8:01:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 10/31/2024 8:01:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 10/31/2024 8:02:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 10/31/2024 8:02:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/31/2024 8:03:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 10/31/2024 8:03:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 10/31/2024 8:04:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 10/31/2024 8:05:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 10/31/2024 8:05:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/31/2024 8:06:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 10/31/2024 8:06:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/31/2024 8:08:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 10/31/2024 8:08:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 10/31/2024 8:09:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/31/2024 8:09:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/31/2024 8:09:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 10/31/2024 8:09:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/31/2024 8:09:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/31/2024 8:09:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 10/31/2024 8:10:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/31/2024 8:11:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 10/31/2024 8:11:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/31/2024 8:13:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 10/31/2024 8:13:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/31/2024 8:15:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56186 , TIME : 10/31/2024 8:16:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 10/31/2024 8:16:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/31/2024 8:16:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 10/31/2024 8:16:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 10/31/2024 8:17:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 10/31/2024 8:17:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 10/31/2024 8:18:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 10/31/2024 8:18:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/31/2024 8:18:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 10/31/2024 8:18:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/31/2024 8:18:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 10/31/2024 8:18:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 10/31/2024 8:18:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/31/2024 8:20:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/31/2024 8:20:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/31/2024 8:20:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/31/2024 8:20:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 10/31/2024 8:20:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/31/2024 8:22:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 10/31/2024 8:22:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 10/31/2024 8:22:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 10/31/2024 8:23:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56025 , TIME : 10/31/2024 8:26:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56025 , TIME : 10/31/2024 8:26:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56025 , TIME : 10/31/2024 8:26:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 10/31/2024 8:26:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 10/31/2024 8:27:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 10/31/2024 8:27:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11346 , TIME : 10/31/2024 8:29:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11346 , TIME : 10/31/2024 8:29:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 10/31/2024 8:29:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 10/31/2024 8:30:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 10/31/2024 8:34:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55921 , TIME : 10/31/2024 8:40:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55921 , TIME : 10/31/2024 8:40:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/31/2024 8:41:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 10/31/2024 8:41:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/31/2024 9:02:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 10/31/2024 9:02:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/31/2024 9:07:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 10/31/2024 9:07:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 10/31/2024 9:07:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 10/31/2024 9:10:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 10/31/2024 9:27:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 10/31/2024 9:27:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 10/31/2024 9:28:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 10/31/2024 9:28:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 10/31/2024 9:28:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 10/31/2024 9:32:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53058 , TIME : 10/31/2024 9:33:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/31/2024 9:42:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 10/31/2024 9:42:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/31/2024 9:45:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 10/31/2024 9:45:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/31/2024 10:21:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 10/31/2024 10:21:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11469 , TIME : 10/31/2024 10:21:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 10/31/2024 10:21:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 10/31/2024 10:21:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 10/31/2024 10:30:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/31/2024 10:33:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 10/31/2024 10:33:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/31/2024 10:40:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 10/31/2024 10:40:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 10/31/2024 10:51:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 10/31/2024 10:51:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 10/31/2024 10:55:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/1/2024 12:02:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/1/2024 12:02:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/1/2024 1:51:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/1/2024 1:51:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/1/2024 5:09:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/1/2024 5:09:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/1/2024 5:13:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/1/2024 5:13:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/1/2024 5:13:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/1/2024 5:13:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/1/2024 5:13:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 11/1/2024 5:21:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 11/1/2024 5:21:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/1/2024 5:21:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/1/2024 5:21:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/1/2024 5:21:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/1/2024 5:21:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 11/1/2024 5:21:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 11/1/2024 5:21:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 11/1/2024 5:31:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/1/2024 6:17:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/1/2024 6:17:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11845 , TIME : 11/1/2024 6:20:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/1/2024 6:24:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/1/2024 6:24:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/1/2024 6:40:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 11/1/2024 6:53:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 11/1/2024 6:53:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 11/1/2024 6:55:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 11/1/2024 6:55:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3311 , TIME : 11/1/2024 6:56:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 11/1/2024 6:59:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 11/1/2024 7:01:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/1/2024 7:02:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/1/2024 7:02:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/1/2024 7:10:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/1/2024 7:10:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 11/1/2024 7:11:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/1/2024 7:11:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/1/2024 7:12:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/1/2024 7:12:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 11/1/2024 7:13:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/1/2024 7:14:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/1/2024 7:17:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 11/1/2024 7:20:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 11/1/2024 7:32:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/1/2024 7:32:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/1/2024 7:32:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/1/2024 7:32:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 11/1/2024 7:35:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/1/2024 7:36:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/1/2024 7:36:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 11/1/2024 7:38:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 11/1/2024 7:38:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/1/2024 7:38:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/1/2024 7:38:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/1/2024 7:39:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 11/1/2024 7:39:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 11/1/2024 7:39:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 11/1/2024 7:40:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 11/1/2024 7:40:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/1/2024 7:40:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/1/2024 7:40:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 11/1/2024 7:41:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/1/2024 7:41:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/1/2024 7:42:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 11/1/2024 7:43:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/1/2024 7:44:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/1/2024 7:44:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/1/2024 7:44:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/1/2024 7:44:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 11/1/2024 7:44:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 11/1/2024 7:44:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 11/1/2024 7:45:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11469 , TIME : 11/1/2024 7:45:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 11/1/2024 7:47:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 11/1/2024 7:52:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 11/1/2024 7:52:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 11/1/2024 7:52:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 11/1/2024 7:52:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 11/1/2024 7:52:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/1/2024 7:53:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/1/2024 7:53:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/1/2024 7:56:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/1/2024 7:56:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55815 , TIME : 11/1/2024 7:58:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/1/2024 8:00:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/1/2024 8:00:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/1/2024 8:01:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 11/1/2024 8:03:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/1/2024 8:04:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/1/2024 8:04:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 11/1/2024 8:10:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 11/1/2024 8:10:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/1/2024 8:10:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/1/2024 8:10:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/1/2024 8:10:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/1/2024 8:10:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/1/2024 8:10:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 11/1/2024 8:10:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/1/2024 8:10:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10818 , TIME : 11/1/2024 8:10:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/1/2024 8:11:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/1/2024 8:11:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 11/1/2024 8:11:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 11/1/2024 8:11:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55676 , TIME : 11/1/2024 8:11:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 11/1/2024 8:11:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 11/1/2024 8:11:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/1/2024 8:12:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/1/2024 8:12:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 11/1/2024 8:12:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 11/1/2024 8:12:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/1/2024 8:12:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/1/2024 8:12:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 11/1/2024 8:12:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 11/1/2024 8:13:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 11/1/2024 8:13:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/1/2024 8:13:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/1/2024 8:14:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/1/2024 8:14:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/1/2024 8:14:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 11/1/2024 8:14:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/1/2024 8:16:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/1/2024 8:16:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/1/2024 8:16:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55293 , TIME : 11/1/2024 8:17:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 11/1/2024 8:17:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 11/1/2024 8:17:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 11/1/2024 8:18:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/1/2024 8:19:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/1/2024 8:19:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 11/1/2024 8:19:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/1/2024 8:19:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/1/2024 8:19:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/1/2024 8:20:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 11/1/2024 8:21:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 11/1/2024 8:21:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/1/2024 8:22:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/1/2024 8:22:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/1/2024 8:22:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2012 , TIME : 11/1/2024 8:26:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/1/2024 8:28:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/1/2024 8:28:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 11/1/2024 8:29:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 11/1/2024 8:29:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 11/1/2024 8:29:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 11/1/2024 8:30:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 11/1/2024 8:30:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 11/1/2024 8:31:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/1/2024 8:32:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 11/1/2024 8:34:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 11/1/2024 8:35:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 11/1/2024 8:35:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/1/2024 8:37:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 11/1/2024 8:38:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/1/2024 8:39:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 11/1/2024 8:39:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 11/1/2024 8:39:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 11/1/2024 8:44:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/1/2024 8:47:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/1/2024 8:47:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/1/2024 8:47:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 11/1/2024 8:49:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/1/2024 8:49:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/1/2024 8:50:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/1/2024 8:50:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 11/1/2024 8:56:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 11/1/2024 8:56:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/1/2024 9:02:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55921 , TIME : 11/1/2024 9:09:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55921 , TIME : 11/1/2024 9:09:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/1/2024 9:24:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 11/1/2024 10:04:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 11/1/2024 10:04:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 10:16:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 10:23:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/1/2024 11:24:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 11:27:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584757 , TIME : 11/1/2024 11:30:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584757 , TIME : 11/1/2024 11:30:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/1/2024 11:38:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/1/2024 12:55:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/1/2024 1:00:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/1/2024 1:04:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/1/2024 1:04:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/1/2024 1:06:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/1/2024 1:26:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/1/2024 1:32:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 11/1/2024 1:41:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 11/1/2024 1:47:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 11/1/2024 1:47:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/1/2024 2:30:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/1/2024 2:30:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/1/2024 2:36:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/1/2024 2:36:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/1/2024 2:38:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/1/2024 2:45:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/1/2024 2:45:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/1/2024 2:49:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 2:49:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 11/1/2024 2:57:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 11/1/2024 2:57:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/1/2024 4:03:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/1/2024 4:03:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/1/2024 4:29:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/1/2024 4:29:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/1/2024 4:40:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 4:51:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 4:51:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 5:10:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 5:10:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 11/1/2024 5:15:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 11/1/2024 5:21:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 11/1/2024 5:21:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/1/2024 5:23:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/1/2024 5:23:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/1/2024 5:28:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/1/2024 5:28:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/1/2024 5:52:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4534 , TIME : 11/1/2024 6:10:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4534 , TIME : 11/1/2024 6:11:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/1/2024 6:11:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/1/2024 6:11:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/1/2024 6:19:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/1/2024 6:19:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/1/2024 6:20:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/1/2024 6:21:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/1/2024 6:21:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/1/2024 6:21:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 11/1/2024 6:22:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 11/1/2024 6:22:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 11/1/2024 6:29:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 11/1/2024 6:30:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 11/1/2024 6:35:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 11/1/2024 6:35:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 11/1/2024 6:39:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/1/2024 6:42:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/1/2024 6:44:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/1/2024 6:44:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 11/1/2024 6:46:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 11/1/2024 6:46:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/1/2024 6:46:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/1/2024 6:52:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 11/1/2024 6:53:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 11/1/2024 6:53:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56058 , TIME : 11/1/2024 6:53:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 11/1/2024 6:53:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 11/1/2024 6:53:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 11/1/2024 6:57:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11026 , TIME : 11/1/2024 6:57:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/1/2024 6:57:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/1/2024 6:57:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 11/1/2024 7:00:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54709 , TIME : 11/1/2024 7:00:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/1/2024 7:00:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/1/2024 7:00:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 11/1/2024 7:01:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 11/1/2024 7:01:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 7:03:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 7:03:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 11/1/2024 7:03:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 11/1/2024 7:03:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55891 , TIME : 11/1/2024 7:03:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/1/2024 7:05:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/1/2024 7:05:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 11/1/2024 7:06:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 11/1/2024 7:06:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 11/1/2024 7:10:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 11/1/2024 7:10:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 11/1/2024 7:10:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 11/1/2024 7:10:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 11/1/2024 7:10:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/1/2024 7:11:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/1/2024 7:11:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/1/2024 7:12:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56223 , TIME : 11/1/2024 7:12:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56310 , TIME : 11/1/2024 7:12:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56310 , TIME : 11/1/2024 7:12:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 11/1/2024 7:13:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 11/1/2024 7:16:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/1/2024 7:16:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/1/2024 7:16:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/1/2024 7:17:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/1/2024 7:17:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/1/2024 7:20:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/1/2024 7:20:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 11/1/2024 7:21:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582814 , TIME : 11/1/2024 7:21:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 11/1/2024 7:22:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 11/1/2024 7:22:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 11/1/2024 7:22:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/1/2024 7:23:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/1/2024 7:23:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/1/2024 7:26:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/1/2024 7:26:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/1/2024 7:27:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/1/2024 7:27:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55921 , TIME : 11/1/2024 7:28:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55921 , TIME : 11/1/2024 7:28:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/1/2024 7:29:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/1/2024 7:29:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/1/2024 7:29:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/1/2024 7:29:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/1/2024 7:29:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/1/2024 7:30:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 11/1/2024 7:32:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1522369 , TIME : 11/1/2024 7:32:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/1/2024 7:32:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/1/2024 7:32:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/1/2024 7:33:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 11/1/2024 7:33:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 11/1/2024 7:33:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 11/1/2024 7:34:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 11/1/2024 7:34:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 11/1/2024 7:34:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 11/1/2024 7:34:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 11/1/2024 7:34:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 11/1/2024 7:35:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/1/2024 7:35:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/1/2024 7:35:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/1/2024 7:35:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 11/1/2024 7:36:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 11/1/2024 7:37:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/1/2024 7:38:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/1/2024 7:38:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11912 , TIME : 11/1/2024 7:38:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/1/2024 7:40:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/1/2024 7:40:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 11/1/2024 7:40:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 11/1/2024 7:40:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/1/2024 7:40:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/1/2024 7:40:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/1/2024 7:40:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 11/1/2024 7:40:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/1/2024 7:41:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/1/2024 7:41:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 11/1/2024 7:41:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 11/1/2024 7:41:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 11/1/2024 7:41:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/1/2024 7:41:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/1/2024 7:42:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/1/2024 7:42:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/1/2024 7:42:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 11/1/2024 7:42:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 11/1/2024 7:42:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 11/1/2024 7:43:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 11/1/2024 7:43:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/1/2024 7:43:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 11/1/2024 7:43:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 11/1/2024 7:44:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 11/1/2024 7:44:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 11/1/2024 7:44:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 11/1/2024 7:44:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/1/2024 7:47:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/1/2024 7:47:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 7:48:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 11/1/2024 7:49:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/1/2024 7:51:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/1/2024 7:51:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 11/1/2024 7:51:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/1/2024 7:51:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/1/2024 7:51:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/1/2024 7:52:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/1/2024 7:52:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 11/1/2024 7:52:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 11/1/2024 7:53:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 11/1/2024 7:53:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 11/1/2024 7:53:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 11/1/2024 7:53:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/1/2024 7:54:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/1/2024 7:54:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/1/2024 7:57:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 11/1/2024 7:58:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 11/1/2024 7:58:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 11/1/2024 7:58:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 11/1/2024 7:59:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 11/1/2024 8:02:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 11/1/2024 8:02:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 11/1/2024 8:02:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 11/1/2024 8:02:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/1/2024 8:05:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/1/2024 8:05:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/1/2024 8:08:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/1/2024 8:08:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 11/1/2024 8:08:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 11/1/2024 8:08:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 11/1/2024 8:10:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/1/2024 8:10:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11346 , TIME : 11/1/2024 8:12:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11346 , TIME : 11/1/2024 8:12:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 11/1/2024 8:13:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/1/2024 8:15:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/1/2024 8:15:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/1/2024 8:16:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1697 , TIME : 11/1/2024 8:17:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 11/1/2024 8:17:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 11/1/2024 8:17:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/1/2024 8:20:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/1/2024 8:21:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/1/2024 8:21:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/1/2024 8:21:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/1/2024 8:22:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/1/2024 8:22:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 11/1/2024 8:22:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 11/1/2024 8:22:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1575365 , TIME : 11/1/2024 8:24:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1575365 , TIME : 11/1/2024 8:24:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8968 , TIME : 11/1/2024 8:25:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8968 , TIME : 11/1/2024 8:25:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/1/2024 8:26:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/1/2024 8:26:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 11/1/2024 8:26:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 11/1/2024 8:26:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 11/1/2024 8:36:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 11/1/2024 8:42:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 11/1/2024 8:42:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56186 , TIME : 11/1/2024 8:43:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/1/2024 8:43:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/1/2024 8:43:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 11/1/2024 8:44:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 11/1/2024 8:50:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 11/1/2024 8:50:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10005 , TIME : 11/1/2024 8:52:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10005 , TIME : 11/1/2024 8:52:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 11/1/2024 8:52:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 11/1/2024 8:52:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55821 , TIME : 11/1/2024 8:53:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/1/2024 8:55:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/1/2024 8:57:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/1/2024 9:06:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/1/2024 9:06:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/1/2024 9:09:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/1/2024 9:09:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/1/2024 9:11:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/1/2024 9:11:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/1/2024 9:13:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/1/2024 9:13:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/1/2024 9:13:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/1/2024 9:13:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/1/2024 9:13:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 11/1/2024 9:13:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 11/1/2024 9:13:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/1/2024 9:17:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/1/2024 9:17:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 11/1/2024 9:20:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 11/1/2024 9:23:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 11/1/2024 9:31:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/1/2024 9:37:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/1/2024 9:37:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 11/1/2024 9:44:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 11/1/2024 9:44:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 11/1/2024 9:53:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 11/1/2024 9:53:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 11/1/2024 9:53:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 11/1/2024 9:53:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 11/1/2024 10:05:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 11/1/2024 10:11:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 11/1/2024 10:38:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 11/1/2024 10:38:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 11/1/2024 10:42:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 11/1/2024 10:42:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/1/2024 10:55:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/1/2024 10:55:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/1/2024 10:55:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/1/2024 11:29:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/1/2024 11:29:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584757 , TIME : 11/1/2024 11:36:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56269 , TIME : 11/2/2024 12:07:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1730 , TIME : 11/2/2024 12:53:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/2/2024 3:22:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/2/2024 5:12:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/2/2024 5:16:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/2/2024 5:16:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/2/2024 5:16:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 5:16:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 5:16:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/2/2024 5:16:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/2/2024 5:17:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/2/2024 5:17:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/2/2024 5:17:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/2/2024 5:17:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 11/2/2024 5:17:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 11/2/2024 5:17:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/2/2024 5:45:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 11/2/2024 6:01:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 6:07:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 11/2/2024 6:23:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 11/2/2024 6:33:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/2/2024 6:33:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 11/2/2024 6:35:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 11/2/2024 6:35:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3311 , TIME : 11/2/2024 6:55:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 11/2/2024 6:56:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 11/2/2024 6:56:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/2/2024 6:57:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/2/2024 6:59:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/2/2024 6:59:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/2/2024 7:01:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/2/2024 7:01:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53069 , TIME : 11/2/2024 7:02:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56186 , TIME : 11/2/2024 7:03:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 11/2/2024 7:05:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 11/2/2024 7:13:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 11/2/2024 7:13:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 11/2/2024 7:13:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 11/2/2024 7:16:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/2/2024 7:16:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/2/2024 7:16:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/2/2024 7:18:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/2/2024 7:18:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 11/2/2024 7:18:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 11/2/2024 7:18:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 11/2/2024 7:20:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 11/2/2024 7:20:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/2/2024 7:21:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/2/2024 7:21:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 7:22:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 7:22:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 11/2/2024 7:23:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/2/2024 7:26:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56173 , TIME : 11/2/2024 7:28:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572753 , TIME : 11/2/2024 7:28:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 11/2/2024 7:29:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/2/2024 7:29:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/2/2024 7:29:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 11/2/2024 7:32:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/2/2024 7:32:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/2/2024 7:32:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/2/2024 7:33:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/2/2024 7:33:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 11/2/2024 7:33:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 11/2/2024 7:33:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/2/2024 7:34:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/2/2024 7:34:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 11/2/2024 7:34:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 11/2/2024 7:34:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/2/2024 7:34:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/2/2024 7:34:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 11/2/2024 7:34:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 11/2/2024 7:35:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 11/2/2024 7:35:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 11/2/2024 7:35:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 11/2/2024 7:35:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/2/2024 7:36:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/2/2024 7:36:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 11/2/2024 7:36:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/2/2024 7:37:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 11/2/2024 7:38:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 11/2/2024 7:38:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/2/2024 7:38:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/2/2024 7:38:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 11/2/2024 7:39:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 11/2/2024 7:40:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 11/2/2024 7:40:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/2/2024 7:40:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/2/2024 7:40:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/2/2024 7:41:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 11/2/2024 7:41:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 11/2/2024 7:41:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 11/2/2024 7:41:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 11/2/2024 7:41:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 11/2/2024 7:41:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/2/2024 7:41:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/2/2024 7:41:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/2/2024 7:42:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/2/2024 7:42:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/2/2024 7:42:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8968 , TIME : 11/2/2024 7:44:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8968 , TIME : 11/2/2024 7:44:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/2/2024 7:47:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/2/2024 7:47:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 11/2/2024 7:49:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 11/2/2024 7:49:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 11/2/2024 7:49:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 11/2/2024 7:49:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 11/2/2024 7:52:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 11/2/2024 7:52:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 11/2/2024 7:52:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 11/2/2024 7:54:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 11/2/2024 7:54:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 11/2/2024 7:54:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 11/2/2024 7:54:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/2/2024 7:55:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/2/2024 7:55:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/2/2024 8:03:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/2/2024 8:04:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4137 , TIME : 11/2/2024 8:04:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 11/2/2024 8:04:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 11/2/2024 8:04:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/2/2024 8:05:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/2/2024 8:05:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/2/2024 8:06:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/2/2024 8:06:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 11/2/2024 8:09:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56154 , TIME : 11/2/2024 8:10:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56154 , TIME : 11/2/2024 8:10:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/2/2024 8:13:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/2/2024 8:13:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 11/2/2024 8:13:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 11/2/2024 8:13:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 11/2/2024 8:13:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/2/2024 8:13:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/2/2024 8:13:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 11/2/2024 8:13:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 11/2/2024 8:14:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 11/2/2024 8:14:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 11/2/2024 8:14:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56103 , TIME : 11/2/2024 8:14:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/2/2024 8:14:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/2/2024 8:14:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/2/2024 8:14:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 11/2/2024 8:15:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56223 , TIME : 11/2/2024 8:15:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 11/2/2024 8:15:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56310 , TIME : 11/2/2024 8:16:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/2/2024 8:16:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/2/2024 8:16:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/2/2024 8:16:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 11/2/2024 8:17:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 11/2/2024 8:17:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/2/2024 8:18:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/2/2024 8:18:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/2/2024 8:18:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/2/2024 8:18:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/2/2024 8:20:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/2/2024 8:20:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 11/2/2024 8:22:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/2/2024 8:22:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 11/2/2024 8:23:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55300 , TIME : 11/2/2024 8:23:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 11/2/2024 8:31:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/2/2024 8:33:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/2/2024 8:33:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/2/2024 8:34:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/2/2024 8:35:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/2/2024 8:36:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 11/2/2024 8:36:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 11/2/2024 8:37:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 11/2/2024 8:37:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/2/2024 8:38:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9120 , TIME : 11/2/2024 8:39:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9120 , TIME : 11/2/2024 8:39:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/2/2024 8:40:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/2/2024 8:40:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 11/2/2024 8:42:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/2/2024 8:43:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 11/2/2024 8:44:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 11/2/2024 8:44:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 11/2/2024 8:44:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 11/2/2024 8:45:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 11/2/2024 8:45:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 11/2/2024 8:49:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/2/2024 8:57:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/2/2024 8:57:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 11/2/2024 8:58:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/2/2024 8:58:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11198 , TIME : 11/2/2024 9:04:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/2/2024 9:06:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/2/2024 9:12:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/2/2024 9:12:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/2/2024 9:16:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 11/2/2024 9:27:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 11/2/2024 9:27:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 11/2/2024 10:14:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 12:29:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 12:29:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/2/2024 2:02:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/2/2024 2:09:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/2/2024 2:09:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 2:09:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 2:09:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55027 , TIME : 11/2/2024 2:42:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 11/2/2024 2:42:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/2/2024 2:48:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55027 , TIME : 11/2/2024 2:59:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56213 , TIME : 11/2/2024 3:03:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56213 , TIME : 11/2/2024 3:03:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 11/2/2024 3:28:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 11/2/2024 3:37:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584757 , TIME : 11/2/2024 4:06:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584757 , TIME : 11/2/2024 4:41:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9120 , TIME : 11/2/2024 4:50:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9120 , TIME : 11/2/2024 4:50:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55626 , TIME : 11/2/2024 4:50:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55626 , TIME : 11/2/2024 4:50:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 11/2/2024 5:23:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11675 , TIME : 11/2/2024 5:23:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 11/2/2024 5:29:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 11/2/2024 5:29:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/2/2024 5:47:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/2/2024 5:47:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/2/2024 5:47:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/2/2024 6:09:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/2/2024 6:10:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/2/2024 6:10:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/2/2024 6:18:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/2/2024 6:18:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/2/2024 6:18:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/2/2024 6:18:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 276359 , TIME : 11/2/2024 6:22:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/2/2024 6:24:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 11/2/2024 6:25:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/2/2024 6:25:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/2/2024 6:25:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 11/2/2024 6:31:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53718 , TIME : 11/2/2024 6:32:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/2/2024 6:32:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/2/2024 6:33:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/2/2024 6:33:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/2/2024 6:44:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/2/2024 6:44:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 11/2/2024 6:47:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/2/2024 6:47:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 11/2/2024 6:51:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 11/2/2024 6:51:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/2/2024 6:52:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/2/2024 6:52:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/2/2024 6:58:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/2/2024 6:58:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 11/2/2024 7:05:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56254 , TIME : 11/2/2024 7:05:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/2/2024 7:05:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 11/2/2024 7:05:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 11/2/2024 7:06:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 11/2/2024 7:06:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 11/2/2024 7:06:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/2/2024 7:12:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/2/2024 7:12:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/2/2024 7:14:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/2/2024 7:14:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/2/2024 7:15:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/2/2024 7:16:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/2/2024 7:16:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 11/2/2024 7:19:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 11/2/2024 7:21:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 11/2/2024 7:21:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/2/2024 7:21:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/2/2024 7:21:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 11/2/2024 7:24:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/2/2024 7:24:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/2/2024 7:24:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/2/2024 7:25:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/2/2024 7:25:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 11/2/2024 7:26:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 11/2/2024 7:26:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55921 , TIME : 11/2/2024 7:27:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 11/2/2024 7:27:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/2/2024 7:28:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/2/2024 7:28:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/2/2024 7:28:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/2/2024 7:28:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/2/2024 7:28:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/2/2024 7:28:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/2/2024 7:30:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/2/2024 7:30:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 11/2/2024 7:30:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/2/2024 7:31:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/2/2024 7:31:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/2/2024 7:31:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/2/2024 7:31:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/2/2024 7:31:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 11/2/2024 7:32:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/2/2024 7:33:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 11/2/2024 7:33:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 11/2/2024 7:33:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/2/2024 7:33:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/2/2024 7:35:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/2/2024 7:35:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/2/2024 7:36:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/2/2024 7:36:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 11/2/2024 7:37:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 11/2/2024 7:38:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56134 , TIME : 11/2/2024 7:38:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56134 , TIME : 11/2/2024 7:38:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 11/2/2024 7:38:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/2/2024 7:38:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/2/2024 7:38:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 11/2/2024 7:39:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/2/2024 7:39:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/2/2024 7:39:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/2/2024 7:39:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/2/2024 7:39:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 11/2/2024 7:39:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/2/2024 7:39:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56154 , TIME : 11/2/2024 7:39:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 11/2/2024 7:41:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 11/2/2024 7:41:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/2/2024 7:41:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/2/2024 7:41:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/2/2024 7:43:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/2/2024 7:43:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/2/2024 7:43:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/2/2024 7:43:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 11/2/2024 7:43:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 11/2/2024 7:43:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 11/2/2024 7:43:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 11/2/2024 7:43:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/2/2024 7:44:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 11/2/2024 7:44:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 11/2/2024 7:44:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/2/2024 7:45:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/2/2024 7:45:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/2/2024 7:49:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/2/2024 7:49:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/2/2024 7:49:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/2/2024 7:49:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 11/2/2024 7:49:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 11/2/2024 7:49:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 11/2/2024 7:51:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580812 , TIME : 11/2/2024 7:51:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 11/2/2024 7:51:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 11/2/2024 7:51:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 11/2/2024 7:52:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/2/2024 7:55:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/2/2024 7:55:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/2/2024 7:57:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/2/2024 7:58:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11421 , TIME : 11/2/2024 7:58:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 11/2/2024 8:00:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1582618 , TIME : 11/2/2024 8:00:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1584437 , TIME : 11/2/2024 8:02:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/2/2024 8:02:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/2/2024 8:02:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 11/2/2024 8:02:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 11/2/2024 8:02:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/2/2024 8:04:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/2/2024 8:05:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/2/2024 8:05:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 11/2/2024 8:05:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55626 , TIME : 11/2/2024 8:06:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 11/2/2024 8:06:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/2/2024 8:08:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 11/2/2024 8:08:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 11/2/2024 8:08:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 11/2/2024 8:08:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 11/2/2024 8:08:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 11/2/2024 8:09:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3969 , TIME : 11/2/2024 8:09:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/2/2024 8:09:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/2/2024 8:09:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 11/2/2024 8:09:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 11/2/2024 8:09:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/2/2024 8:09:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/2/2024 8:10:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/2/2024 8:10:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/2/2024 8:10:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/2/2024 8:10:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 11/2/2024 8:10:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 11/2/2024 8:10:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 11/2/2024 8:11:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 11/2/2024 8:11:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/2/2024 8:11:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/2/2024 8:11:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/2/2024 8:12:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/2/2024 8:12:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 11/2/2024 8:12:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 11/2/2024 8:12:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 11/2/2024 8:12:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 11/2/2024 8:14:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 11/2/2024 8:14:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11198 , TIME : 11/2/2024 8:15:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1575365 , TIME : 11/2/2024 8:15:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1575365 , TIME : 11/2/2024 8:15:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56186 , TIME : 11/2/2024 8:15:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/2/2024 8:16:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/2/2024 8:16:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53651 , TIME : 11/2/2024 8:17:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56008 , TIME : 11/2/2024 8:17:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55631 , TIME : 11/2/2024 8:18:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54011 , TIME : 11/2/2024 8:20:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54011 , TIME : 11/2/2024 8:20:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54011 , TIME : 11/2/2024 8:20:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 11/2/2024 8:20:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 11/2/2024 8:20:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55027 , TIME : 11/2/2024 8:20:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56225 , TIME : 11/2/2024 8:20:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56225 , TIME : 11/2/2024 8:20:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/2/2024 8:20:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/2/2024 8:20:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/2/2024 8:20:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/2/2024 8:20:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/2/2024 8:20:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/2/2024 8:20:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/2/2024 8:21:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/2/2024 8:21:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 11/2/2024 8:21:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/2/2024 8:22:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10005 , TIME : 11/2/2024 8:22:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10005 , TIME : 11/2/2024 8:22:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 11/2/2024 8:26:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/2/2024 8:28:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/2/2024 8:28:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/2/2024 8:29:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/2/2024 8:29:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 11/2/2024 8:29:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 11/2/2024 8:47:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/2/2024 8:56:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/2/2024 8:56:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/2/2024 8:56:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 11/2/2024 9:00:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 11/2/2024 9:00:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 11/2/2024 9:10:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 269334 , TIME : 11/2/2024 9:10:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1511347 , TIME : 11/2/2024 9:11:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/2/2024 9:11:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/2/2024 9:11:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/2/2024 9:14:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/2/2024 9:14:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 11/2/2024 9:14:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 11/2/2024 9:14:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/2/2024 9:14:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/2/2024 9:14:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 11/2/2024 9:24:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/2/2024 9:24:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/2/2024 9:24:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 11/2/2024 9:24:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/2/2024 9:25:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/2/2024 9:29:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54226 , TIME : 11/2/2024 9:30:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 11/2/2024 9:48:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 11/2/2024 9:50:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 11/2/2024 9:51:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 11/2/2024 9:51:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/2/2024 9:51:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/2/2024 9:52:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55203 , TIME : 11/2/2024 9:58:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 11/2/2024 10:01:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2012 , TIME : 11/2/2024 10:23:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 11/2/2024 10:50:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/2/2024 11:06:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/2/2024 11:11:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/2/2024 11:11:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/3/2024 5:06:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/3/2024 5:06:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/3/2024 5:12:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/3/2024 5:22:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/3/2024 5:22:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/3/2024 5:22:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/3/2024 5:33:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1578116 , TIME : 11/3/2024 5:33:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/3/2024 5:33:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1572235 , TIME : 11/3/2024 5:33:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 157882 , TIME : 11/3/2024 5:33:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 11/3/2024 5:33:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1523354 , TIME : 11/3/2024 5:33:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 11/3/2024 5:36:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 11/3/2024 5:36:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/3/2024 5:59:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/3/2024 5:59:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 11/3/2024 6:19:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12212 , TIME : 11/3/2024 6:19:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 11/3/2024 6:24:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 11/3/2024 6:24:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/3/2024 6:27:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/3/2024 6:27:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/3/2024 6:43:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/3/2024 6:57:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/3/2024 6:57:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/3/2024 6:57:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/3/2024 6:58:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/3/2024 6:58:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/3/2024 7:01:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/3/2024 7:01:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/3/2024 7:10:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 11/3/2024 7:24:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 11/3/2024 7:25:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/3/2024 7:25:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 11/3/2024 7:26:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573468 , TIME : 11/3/2024 7:26:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9120 , TIME : 11/3/2024 7:28:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9120 , TIME : 11/3/2024 7:28:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55626 , TIME : 11/3/2024 7:28:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3474 , TIME : 11/3/2024 7:31:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/3/2024 7:32:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/3/2024 7:32:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/3/2024 7:32:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/3/2024 7:32:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/3/2024 7:33:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/3/2024 7:33:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/3/2024 7:33:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 11/3/2024 7:34:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/3/2024 7:35:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/3/2024 7:35:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/3/2024 7:35:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/3/2024 7:35:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 11/3/2024 7:36:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 11/3/2024 7:36:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56009 , TIME : 11/3/2024 7:37:08 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56009 , TIME : 11/3/2024 7:37:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/3/2024 7:37:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/3/2024 7:37:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/3/2024 7:37:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/3/2024 7:38:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 11/3/2024 7:39:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/3/2024 7:39:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/3/2024 7:39:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 11/3/2024 7:42:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 11/3/2024 7:42:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/3/2024 7:42:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/3/2024 7:42:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/3/2024 7:43:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/3/2024 7:43:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 11/3/2024 7:43:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/3/2024 7:43:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 11/3/2024 7:44:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 11/3/2024 7:44:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/3/2024 7:45:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/3/2024 7:45:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 11/3/2024 7:45:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/3/2024 7:47:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/3/2024 7:47:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 11/3/2024 7:49:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12155 , TIME : 11/3/2024 7:51:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/3/2024 7:53:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/3/2024 7:53:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 11/3/2024 7:54:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 11/3/2024 7:56:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/3/2024 7:59:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/3/2024 7:59:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4343 , TIME : 11/3/2024 8:00:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4343 , TIME : 11/3/2024 8:00:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11798 , TIME : 11/3/2024 8:01:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/3/2024 8:02:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/3/2024 8:03:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 11/3/2024 8:04:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 11/3/2024 8:04:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 11/3/2024 8:05:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/3/2024 8:05:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 11/3/2024 8:05:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56364 , TIME : 11/3/2024 8:05:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/3/2024 8:05:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/3/2024 8:06:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/3/2024 8:08:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/3/2024 8:08:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 11/3/2024 8:08:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56134 , TIME : 11/3/2024 8:08:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 11/3/2024 8:08:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 11/3/2024 8:08:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 11/3/2024 8:10:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 151368 , TIME : 11/3/2024 8:10:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 11/3/2024 8:11:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 11/3/2024 8:11:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 11/3/2024 8:14:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 11/3/2024 8:14:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 11/3/2024 8:14:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 11/3/2024 8:15:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 11/3/2024 8:15:06 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 11/3/2024 8:15:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/3/2024 8:15:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/3/2024 8:15:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/3/2024 8:15:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/3/2024 8:15:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 11/3/2024 8:15:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/3/2024 8:15:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/3/2024 8:15:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 11/3/2024 8:15:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/3/2024 8:15:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/3/2024 8:15:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/3/2024 8:15:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 11/3/2024 8:15:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 11/3/2024 8:16:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/3/2024 8:17:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/3/2024 8:17:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/3/2024 8:17:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 11/3/2024 8:22:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 11/3/2024 8:22:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/3/2024 8:24:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/3/2024 8:24:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/3/2024 8:25:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/3/2024 8:25:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 11/3/2024 8:25:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 11/3/2024 8:25:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/3/2024 8:26:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56313 , TIME : 11/3/2024 8:26:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55904 , TIME : 11/3/2024 8:26:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9116 , TIME : 11/3/2024 8:32:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/3/2024 8:32:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/3/2024 8:34:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11084 , TIME : 11/3/2024 8:35:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/3/2024 8:35:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/3/2024 8:35:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/3/2024 8:35:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56136 , TIME : 11/3/2024 8:39:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/3/2024 8:42:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/3/2024 9:38:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/3/2024 10:14:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/3/2024 10:14:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/3/2024 10:21:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/3/2024 10:21:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/3/2024 10:36:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1565100 , TIME : 11/3/2024 10:39:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/3/2024 10:40:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/3/2024 10:50:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2424 , TIME : 11/3/2024 10:50:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 11/3/2024 10:56:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 11/3/2024 10:58:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/3/2024 11:53:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/3/2024 11:53:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/3/2024 11:53:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/3/2024 11:57:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12087 , TIME : 11/3/2024 11:57:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 11/3/2024 12:00:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/3/2024 1:02:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/3/2024 1:02:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/3/2024 1:13:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/3/2024 1:13:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/3/2024 1:17:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/3/2024 1:17:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/3/2024 1:20:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/3/2024 1:20:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/3/2024 1:38:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 11/3/2024 1:38:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 11/3/2024 1:53:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1577932 , TIME : 11/3/2024 2:03:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1577932 , TIME : 11/3/2024 2:03:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/3/2024 2:13:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/3/2024 2:13:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/3/2024 2:13:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/3/2024 2:14:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5441 , TIME : 11/3/2024 2:14:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 11/3/2024 2:19:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/3/2024 2:19:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/3/2024 2:19:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9107 , TIME : 11/3/2024 2:32:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9107 , TIME : 11/3/2024 2:32:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/3/2024 2:53:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/3/2024 3:04:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/3/2024 3:23:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/3/2024 3:23:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/3/2024 3:23:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/3/2024 3:25:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/3/2024 3:25:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/3/2024 3:25:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 11/3/2024 3:26:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 11/3/2024 3:42:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 11/3/2024 3:42:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/3/2024 3:53:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8060 , TIME : 11/3/2024 3:53:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/3/2024 3:53:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/3/2024 3:54:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/3/2024 3:54:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/3/2024 3:56:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8443 , TIME : 11/3/2024 3:56:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/3/2024 4:06:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/3/2024 4:06:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/3/2024 4:06:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/3/2024 4:16:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/3/2024 4:16:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 11/3/2024 4:19:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 11/3/2024 4:19:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 11/3/2024 4:19:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 52004 , TIME : 11/3/2024 4:37:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 52004 , TIME : 11/3/2024 4:37:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 52004 , TIME : 11/3/2024 4:37:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 11/3/2024 4:38:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 11/3/2024 4:38:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/3/2024 4:45:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11346 , TIME : 11/3/2024 4:55:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11346 , TIME : 11/3/2024 4:55:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/3/2024 4:59:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/3/2024 5:14:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/3/2024 5:15:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10679 , TIME : 11/3/2024 5:16:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 7777 , TIME : 11/3/2024 5:17:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/3/2024 5:21:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/3/2024 5:21:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/3/2024 5:21:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/3/2024 5:21:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9035 , TIME : 11/3/2024 5:22:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9035 , TIME : 11/3/2024 5:22:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9035 , TIME : 11/3/2024 5:22:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 11/3/2024 5:22:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 11/3/2024 5:23:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54040 , TIME : 11/3/2024 5:24:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54040 , TIME : 11/3/2024 5:24:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54040 , TIME : 11/3/2024 5:24:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11190 , TIME : 11/3/2024 5:26:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11190 , TIME : 11/3/2024 5:26:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11190 , TIME : 11/3/2024 5:26:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55977 , TIME : 11/3/2024 5:26:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55977 , TIME : 11/3/2024 5:26:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/3/2024 5:26:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1508656 , TIME : 11/3/2024 5:29:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1508656 , TIME : 11/3/2024 5:29:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1508656 , TIME : 11/3/2024 5:29:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 11/3/2024 5:29:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9107 , TIME : 11/3/2024 5:30:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9107 , TIME : 11/3/2024 5:30:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3348 , TIME : 11/3/2024 5:31:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3348 , TIME : 11/3/2024 5:31:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3348 , TIME : 11/3/2024 5:31:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/3/2024 5:34:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/3/2024 5:34:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/3/2024 5:34:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9118 , TIME : 11/3/2024 5:35:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9118 , TIME : 11/3/2024 5:35:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9118 , TIME : 11/3/2024 5:35:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1104 , TIME : 11/3/2024 5:36:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1104 , TIME : 11/3/2024 5:37:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1104 , TIME : 11/3/2024 5:37:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1104 , TIME : 11/3/2024 5:37:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587487 , TIME : 11/3/2024 5:38:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587487 , TIME : 11/3/2024 5:38:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587487 , TIME : 11/3/2024 5:38:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587487 , TIME : 11/3/2024 5:38:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56068 , TIME : 11/3/2024 5:40:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56068 , TIME : 11/3/2024 5:40:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56068 , TIME : 11/3/2024 5:40:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 244 , TIME : 11/3/2024 5:41:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 244 , TIME : 11/3/2024 5:42:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56093 , TIME : 11/3/2024 5:44:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56093 , TIME : 11/3/2024 5:44:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56093 , TIME : 11/3/2024 5:44:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/3/2024 5:45:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9895 , TIME : 11/3/2024 5:47:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9895 , TIME : 11/3/2024 5:47:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9895 , TIME : 11/3/2024 5:47:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 11/3/2024 5:50:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/3/2024 5:54:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 11/3/2024 5:55:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55431 , TIME : 11/3/2024 5:57:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55431 , TIME : 11/3/2024 5:57:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/3/2024 5:57:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/3/2024 5:57:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/3/2024 5:57:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/3/2024 5:57:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56352 , TIME : 11/3/2024 5:59:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4434 , TIME : 11/3/2024 6:01:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4434 , TIME : 11/3/2024 6:01:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 152023 , TIME : 11/3/2024 6:03:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 152023 , TIME : 11/3/2024 6:03:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 11/3/2024 6:03:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/3/2024 6:04:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/3/2024 6:04:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8963 , TIME : 11/3/2024 6:07:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8963 , TIME : 11/3/2024 6:07:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9035 , TIME : 11/3/2024 6:07:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/3/2024 6:08:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/3/2024 6:13:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/3/2024 6:16:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/3/2024 6:16:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/3/2024 6:17:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/3/2024 6:17:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4838 , TIME : 11/3/2024 6:18:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1104 , TIME : 11/3/2024 6:27:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1104 , TIME : 11/3/2024 6:27:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56347 , TIME : 11/3/2024 6:28:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56347 , TIME : 11/3/2024 6:28:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56347 , TIME : 11/3/2024 6:29:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/3/2024 6:29:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/3/2024 6:29:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/3/2024 6:34:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/3/2024 6:47:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55423 , TIME : 11/3/2024 6:51:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55423 , TIME : 11/3/2024 6:51:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/3/2024 6:51:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/3/2024 6:51:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/3/2024 6:51:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/3/2024 6:51:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/3/2024 6:53:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/3/2024 6:54:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/3/2024 7:00:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/3/2024 7:00:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3743 , TIME : 11/3/2024 7:01:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3743 , TIME : 11/3/2024 7:01:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3405 , TIME : 11/3/2024 7:02:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3405 , TIME : 11/3/2024 7:02:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/3/2024 7:06:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/3/2024 7:06:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4434 , TIME : 11/3/2024 7:06:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4434 , TIME : 11/3/2024 7:06:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54546 , TIME : 11/3/2024 7:09:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54040 , TIME : 11/3/2024 7:12:58 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54040 , TIME : 11/3/2024 7:13:00 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9107 , TIME : 11/3/2024 7:14:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9107 , TIME : 11/3/2024 7:15:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 11/3/2024 7:16:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56223 , TIME : 11/3/2024 7:18:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 11/3/2024 7:21:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 11/3/2024 7:21:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56307 , TIME : 11/3/2024 7:21:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 152023 , TIME : 11/3/2024 7:26:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 152023 , TIME : 11/3/2024 7:26:45 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11245 , TIME : 11/3/2024 7:26:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55921 , TIME : 11/3/2024 7:28:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 11/3/2024 7:29:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 11/3/2024 7:31:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55679 , TIME : 11/3/2024 7:31:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9895 , TIME : 11/3/2024 7:31:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/3/2024 7:31:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/3/2024 7:31:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8951 , TIME : 11/3/2024 7:32:01 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 11/3/2024 7:34:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 11/3/2024 7:34:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 11/3/2024 7:34:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 11/3/2024 7:34:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 11/3/2024 7:34:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 11/3/2024 7:34:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 11/3/2024 7:34:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/3/2024 7:35:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 11/3/2024 7:35:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 11/3/2024 7:35:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55627 , TIME : 11/3/2024 7:36:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55627 , TIME : 11/3/2024 7:36:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/3/2024 7:36:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/3/2024 7:36:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/3/2024 7:36:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55956 , TIME : 11/3/2024 7:36:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/3/2024 7:36:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 11/3/2024 7:36:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 11/3/2024 7:37:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/3/2024 7:37:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/3/2024 7:37:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/3/2024 7:37:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/3/2024 7:37:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1573236 , TIME : 11/3/2024 7:40:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1514986 , TIME : 11/3/2024 7:40:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 11/3/2024 7:41:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 11/3/2024 7:42:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 11/3/2024 7:42:50 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/3/2024 7:44:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/3/2024 7:44:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 11/3/2024 7:45:22 PM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/3/2024 7:46:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/3/2024 7:48:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/3/2024 7:48:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/3/2024 7:49:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/3/2024 7:49:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 11/3/2024 7:52:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/3/2024 7:57:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/3/2024 7:57:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/3/2024 8:00:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53058 , TIME : 11/3/2024 8:02:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53058 , TIME : 11/3/2024 8:02:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53892 , TIME : 11/3/2024 8:02:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/3/2024 8:02:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/3/2024 8:02:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/3/2024 8:04:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/3/2024 8:04:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 11/3/2024 8:04:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56129 , TIME : 11/3/2024 8:06:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56129 , TIME : 11/3/2024 8:06:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/3/2024 8:06:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/3/2024 8:06:38 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 11/3/2024 8:06:43 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53849 , TIME : 11/3/2024 8:07:40 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53849 , TIME : 11/3/2024 8:07:42 PM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/3/2024 8:07:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/3/2024 8:07:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/3/2024 8:07:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 11/3/2024 8:07:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/3/2024 8:08:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/3/2024 8:08:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/3/2024 8:08:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 11/3/2024 8:08:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/3/2024 8:08:29 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 11/3/2024 8:09:12 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 11/3/2024 8:09:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55557 , TIME : 11/3/2024 8:11:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55557 , TIME : 11/3/2024 8:11:56 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56009 , TIME : 11/3/2024 8:12:06 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56009 , TIME : 11/3/2024 8:12:09 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54482 , TIME : 11/3/2024 8:13:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8963 , TIME : 11/3/2024 8:13:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 11/3/2024 8:13:53 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 11/3/2024 8:13:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/3/2024 8:15:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/3/2024 8:15:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/3/2024 8:15:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/3/2024 8:15:35 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/3/2024 8:15:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/3/2024 8:15:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/3/2024 8:15:49 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3743 , TIME : 11/3/2024 8:17:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/3/2024 8:24:17 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/3/2024 8:24:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/3/2024 8:26:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/3/2024 8:26:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/3/2024 8:27:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/3/2024 8:28:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9634 , TIME : 11/3/2024 8:28:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1509184 , TIME : 11/3/2024 8:33:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 11/3/2024 8:38:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3888 , TIME : 11/3/2024 8:38:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 2012 , TIME : 11/3/2024 8:39:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 11/3/2024 8:39:18 PM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 11/3/2024 8:39:20 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11158 , TIME : 11/3/2024 8:39:27 PM
+MACHINE : 192.168.50.8 : , EMP NO : 11158 , TIME : 11/3/2024 8:39:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54439 , TIME : 11/3/2024 8:45:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54439 , TIME : 11/3/2024 8:45:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54439 , TIME : 11/3/2024 8:45:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/3/2024 8:45:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/3/2024 8:45:46 PM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/3/2024 8:45:48 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9035 , TIME : 11/3/2024 8:45:52 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9035 , TIME : 11/3/2024 8:45:54 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54028 , TIME : 11/3/2024 8:47:02 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54028 , TIME : 11/3/2024 8:47:04 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54028 , TIME : 11/3/2024 8:47:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54070 , TIME : 11/3/2024 8:48:08 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54070 , TIME : 11/3/2024 8:48:10 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 11/3/2024 8:48:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/3/2024 8:52:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/3/2024 8:55:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/3/2024 8:55:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/3/2024 8:55:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54529 , TIME : 11/3/2024 8:59:37 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54211 , TIME : 11/3/2024 9:17:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54211 , TIME : 11/3/2024 9:17:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 8726 , TIME : 11/3/2024 9:17:30 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/3/2024 9:18:39 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/3/2024 9:26:41 PM
+MACHINE : 192.168.50.8 : , EMP NO : 244 , TIME : 11/3/2024 9:30:44 PM
+MACHINE : 192.168.50.8 : , EMP NO : 244 , TIME : 11/3/2024 9:30:47 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56068 , TIME : 11/3/2024 9:30:51 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9118 , TIME : 11/3/2024 9:30:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 9118 , TIME : 11/3/2024 9:30:59 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587487 , TIME : 11/3/2024 9:31:03 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1587487 , TIME : 11/3/2024 9:31:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/3/2024 9:35:31 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/3/2024 9:35:33 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/3/2024 9:49:24 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1735 , TIME : 11/3/2024 9:49:26 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3666 , TIME : 11/3/2024 9:53:32 PM
+MACHINE : 192.168.50.8 : , EMP NO : 54226 , TIME : 11/3/2024 9:55:11 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 11/3/2024 9:55:23 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572731 , TIME : 11/3/2024 9:55:25 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10545 , TIME : 11/3/2024 10:09:28 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 11/3/2024 10:18:13 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1572857 , TIME : 11/3/2024 10:18:15 PM
+MACHINE : 192.168.50.8 : , EMP NO : 152023 , TIME : 11/3/2024 10:27:57 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1104 , TIME : 11/3/2024 10:32:19 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1104 , TIME : 11/3/2024 10:32:21 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 11/3/2024 10:35:34 PM
+MACHINE : 192.168.50.8 : , EMP NO : 1580854 , TIME : 11/3/2024 10:35:36 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4343 , TIME : 11/3/2024 11:10:16 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/3/2024 11:34:05 PM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/3/2024 11:34:07 PM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 11/3/2024 11:34:14 PM
+MACHINE : 192.168.50.8 : , EMP NO : 3729 , TIME : 11/3/2024 11:47:55 PM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 11/4/2024 5:19:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4518 , TIME : 11/4/2024 5:19:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 11/4/2024 6:04:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55375 , TIME : 11/4/2024 6:04:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 11/4/2024 6:08:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11351 , TIME : 11/4/2024 6:08:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/4/2024 6:28:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/4/2024 6:28:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/4/2024 6:28:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/4/2024 6:28:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 2012 , TIME : 11/4/2024 6:38:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12045 , TIME : 11/4/2024 6:47:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 51196 , TIME : 11/4/2024 6:58:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54211 , TIME : 11/4/2024 7:00:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/4/2024 7:01:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56164 , TIME : 11/4/2024 7:01:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56158 , TIME : 11/4/2024 7:01:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53918 , TIME : 11/4/2024 7:02:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3311 , TIME : 11/4/2024 7:03:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55244 , TIME : 11/4/2024 7:05:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 11/4/2024 7:05:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53700 , TIME : 11/4/2024 7:05:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 11/4/2024 7:07:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54451 , TIME : 11/4/2024 7:07:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55027 , TIME : 11/4/2024 7:08:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/4/2024 7:09:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/4/2024 7:09:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3397 , TIME : 11/4/2024 7:13:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11469 , TIME : 11/4/2024 7:15:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11469 , TIME : 11/4/2024 7:15:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/4/2024 7:18:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1511681 , TIME : 11/4/2024 7:18:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9895 , TIME : 11/4/2024 7:21:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9895 , TIME : 11/4/2024 7:21:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 11/4/2024 7:21:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55811 , TIME : 11/4/2024 7:21:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55745 , TIME : 11/4/2024 7:21:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3395 , TIME : 11/4/2024 7:22:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55383 , TIME : 11/4/2024 7:24:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 11/4/2024 7:26:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587453 , TIME : 11/4/2024 7:26:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/4/2024 7:26:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54708 , TIME : 11/4/2024 7:26:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 11/4/2024 7:26:59 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1585584 , TIME : 11/4/2024 7:27:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/4/2024 7:27:04 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1584461 , TIME : 11/4/2024 7:27:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3396 , TIME : 11/4/2024 7:28:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8366 , TIME : 11/4/2024 7:29:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54439 , TIME : 11/4/2024 7:31:24 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54439 , TIME : 11/4/2024 7:31:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55610 , TIME : 11/4/2024 7:31:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 11/4/2024 7:31:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56365 , TIME : 11/4/2024 7:31:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10984 , TIME : 11/4/2024 7:33:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55807 , TIME : 11/4/2024 7:34:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/4/2024 7:34:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1580300 , TIME : 11/4/2024 7:34:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 11/4/2024 7:35:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55468 , TIME : 11/4/2024 7:35:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53849 , TIME : 11/4/2024 7:35:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53849 , TIME : 11/4/2024 7:35:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 11/4/2024 7:35:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55621 , TIME : 11/4/2024 7:35:40 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3376 , TIME : 11/4/2024 7:35:55 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8359 , TIME : 11/4/2024 7:36:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4588 , TIME : 11/4/2024 7:38:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/4/2024 7:38:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4460 , TIME : 11/4/2024 7:38:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/4/2024 7:39:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56110 , TIME : 11/4/2024 7:39:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/4/2024 7:39:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56183 , TIME : 11/4/2024 7:39:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/4/2024 7:39:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/4/2024 7:39:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56325 , TIME : 11/4/2024 7:39:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56309 , TIME : 11/4/2024 7:39:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 296289 , TIME : 11/4/2024 7:39:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56335 , TIME : 11/4/2024 7:40:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/4/2024 7:40:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 53026 , TIME : 11/4/2024 7:40:20 AM
+MACHINE : 192.168.50.8 : , EMP NO : 15244628 , TIME : 11/4/2024 7:40:32 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55809 , TIME : 11/4/2024 7:40:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 11/4/2024 7:40:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3936 , TIME : 11/4/2024 7:40:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/4/2024 7:40:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4485 , TIME : 11/4/2024 7:40:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54482 , TIME : 11/4/2024 7:42:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 11/4/2024 7:44:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4896 , TIME : 11/4/2024 7:44:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 11/4/2024 7:45:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56174 , TIME : 11/4/2024 7:45:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/4/2024 7:45:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56175 , TIME : 11/4/2024 7:45:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56105 , TIME : 11/4/2024 7:47:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56213 , TIME : 11/4/2024 7:47:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56213 , TIME : 11/4/2024 7:47:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55803 , TIME : 11/4/2024 7:47:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10354 , TIME : 11/4/2024 7:47:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9217 , TIME : 11/4/2024 7:48:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55557 , TIME : 11/4/2024 7:48:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55557 , TIME : 11/4/2024 7:48:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/4/2024 7:48:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10107 , TIME : 11/4/2024 7:48:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8111 , TIME : 11/4/2024 7:49:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/4/2024 7:50:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587924 , TIME : 11/4/2024 7:50:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/4/2024 7:52:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56283 , TIME : 11/4/2024 7:52:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54040 , TIME : 11/4/2024 7:52:13 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54040 , TIME : 11/4/2024 7:52:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56129 , TIME : 11/4/2024 7:56:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56129 , TIME : 11/4/2024 7:56:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56129 , TIME : 11/4/2024 7:56:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8061 , TIME : 11/4/2024 7:56:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/4/2024 7:56:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56171 , TIME : 11/4/2024 7:56:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54070 , TIME : 11/4/2024 7:56:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54070 , TIME : 11/4/2024 7:56:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1521681 , TIME : 11/4/2024 7:57:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 11/4/2024 7:57:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11242 , TIME : 11/4/2024 7:57:53 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1577932 , TIME : 11/4/2024 7:58:09 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1577932 , TIME : 11/4/2024 7:58:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 11/4/2024 7:58:17 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4206 , TIME : 11/4/2024 7:58:19 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 11/4/2024 8:03:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4454 , TIME : 11/4/2024 8:03:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54563 , TIME : 11/4/2024 8:05:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56223 , TIME : 11/4/2024 8:05:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11286 , TIME : 11/4/2024 8:06:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 11/4/2024 8:06:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56219 , TIME : 11/4/2024 8:06:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55752 , TIME : 11/4/2024 8:09:23 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56178 , TIME : 11/4/2024 8:09:47 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56154 , TIME : 11/4/2024 8:10:05 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/4/2024 8:10:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3835 , TIME : 11/4/2024 8:10:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3348 , TIME : 11/4/2024 8:10:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5235 , TIME : 11/4/2024 8:10:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/4/2024 8:12:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/4/2024 8:12:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/4/2024 8:12:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4434 , TIME : 11/4/2024 8:13:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4151 , TIME : 11/4/2024 8:13:22 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8132 , TIME : 11/4/2024 8:13:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/4/2024 8:13:31 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10103 , TIME : 11/4/2024 8:13:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 11/4/2024 8:13:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3917 , TIME : 11/4/2024 8:13:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/4/2024 8:13:41 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4698 , TIME : 11/4/2024 8:13:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/4/2024 8:13:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10001 , TIME : 11/4/2024 8:13:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9391 , TIME : 11/4/2024 8:13:50 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4948 , TIME : 11/4/2024 8:14:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4993 , TIME : 11/4/2024 8:14:07 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1736 , TIME : 11/4/2024 8:14:54 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56061 , TIME : 11/4/2024 8:16:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/4/2024 8:16:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3375 , TIME : 11/4/2024 8:16:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/4/2024 8:17:18 AM
+MACHINE : 192.168.50.8 : , EMP NO : 5430 , TIME : 11/4/2024 8:17:21 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3812 , TIME : 11/4/2024 8:18:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3812 , TIME : 11/4/2024 8:18:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/4/2024 8:18:34 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4149 , TIME : 11/4/2024 8:18:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/4/2024 8:18:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8277 , TIME : 11/4/2024 8:18:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3803 , TIME : 11/4/2024 8:19:44 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54316 , TIME : 11/4/2024 8:20:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54321 , TIME : 11/4/2024 8:20:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 11/4/2024 8:20:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54202 , TIME : 11/4/2024 8:20:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8524 , TIME : 11/4/2024 8:23:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/4/2024 8:27:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510693 , TIME : 11/4/2024 8:27:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/4/2024 8:33:01 AM
+MACHINE : 192.168.50.8 : , EMP NO : 54344 , TIME : 11/4/2024 8:33:03 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/4/2024 8:33:30 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1576768 , TIME : 11/4/2024 8:33:33 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/4/2024 8:33:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10789 , TIME : 11/4/2024 8:33:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3759 , TIME : 11/4/2024 8:33:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1510195 , TIME : 11/4/2024 8:34:29 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 11/4/2024 8:34:46 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12058 , TIME : 11/4/2024 8:34:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12099 , TIME : 11/4/2024 8:34:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10665 , TIME : 11/4/2024 8:35:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/4/2024 8:36:36 AM
+MACHINE : 192.168.50.8 : , EMP NO : 270217 , TIME : 11/4/2024 8:36:38 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55825 , TIME : 11/4/2024 8:37:52 AM
+MACHINE : 192.168.50.8 : , EMP NO : 55423 , TIME : 11/4/2024 8:38:12 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10022 , TIME : 11/4/2024 8:39:14 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4534 , TIME : 11/4/2024 8:39:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 8115 , TIME : 11/4/2024 8:41:48 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1589294 , TIME : 11/4/2024 8:41:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/4/2024 8:43:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/4/2024 8:43:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56120 , TIME : 11/4/2024 8:44:00 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1583923 , TIME : 11/4/2024 8:44:16 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/4/2024 8:47:26 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12163 , TIME : 11/4/2024 8:47:28 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9107 , TIME : 11/4/2024 8:48:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9107 , TIME : 11/4/2024 8:48:45 AM
+MACHINE : 192.168.50.8 : , EMP NO : 152023 , TIME : 11/4/2024 8:48:58 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10731 , TIME : 11/4/2024 8:57:42 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 11/4/2024 8:58:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1588229 , TIME : 11/4/2024 8:58:51 AM
+MACHINE : 192.168.50.8 : , EMP NO : 10566 , TIME : 11/4/2024 9:06:57 AM
+MACHINE : 192.168.50.8 : , EMP NO : 4131 , TIME : 11/4/2024 9:26:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56293 , TIME : 11/4/2024 9:36:15 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3743 , TIME : 11/4/2024 9:37:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9035 , TIME : 11/4/2024 9:45:11 AM
+MACHINE : 192.168.50.8 : , EMP NO : 9035 , TIME : 11/4/2024 9:45:49 AM
+MACHINE : 192.168.50.8 : , EMP NO : 11161 , TIME : 11/4/2024 9:56:10 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/4/2024 10:08:25 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/4/2024 10:08:27 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56197 , TIME : 11/4/2024 10:10:02 AM
+MACHINE : 192.168.50.8 : , EMP NO : 56213 , TIME : 11/4/2024 10:10:43 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/4/2024 10:15:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 3120 , TIME : 11/4/2024 10:15:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 11/4/2024 10:17:35 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1518649 , TIME : 11/4/2024 10:17:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12270 , TIME : 11/4/2024 10:21:37 AM
+MACHINE : 192.168.50.8 : , EMP NO : 12270 , TIME : 11/4/2024 10:21:39 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587721 , TIME : 11/4/2024 10:25:56 AM
+MACHINE : 192.168.50.8 : , EMP NO : 1587721 , TIME : 11/4/2024 10:25:58 AM
+--Service is stopped at 11/4/2024 10:45:14 AM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_12_26_2023.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_12_26_2023.txt
new file mode 100644
index 0000000..54e60b2
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_12_26_2023.txt
@@ -0,0 +1,23 @@
+--Service is started at 12/26/2023 11:00:48 AM
+
+
+MACHINE : 192.168.10.13 : NOT CONNECTED
+--Service is stopped at 12/26/2023 11:01:11 AM
+--Service is started at 12/26/2023 11:03:29 AM
+--Service is started at 12/26/2023 11:05:07 AM
+
+
+MACHINE : 192.168.10.13 : NOT CONNECTED
+--Service is stopped at 12/26/2023 11:05:44 AM
+--Service is started at 12/26/2023 11:09:32 AM
+--Service is started at 12/26/2023 11:10:39 AM
+--Service is started at 12/26/2023 11:12:38 AM
+--Service is started at 12/26/2023 11:14:10 AM
+--Service is started at 12/26/2023 11:14:49 AM
+--Service is started at 12/26/2023 11:21:13 AM
+MACHINE : 1, TOTAL EMP : 45
+MACHINE : 2, TOTAL EMP : 1
+MACHINE : 192.168.10.13 : NOT CONNECTED
+--Service is stopped at 12/26/2023 11:24:21 AM
+--Service is started at 12/26/2023 11:25:07 AM
+--Service is started at 12/26/2023 11:31:02 AM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_23_2025.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_23_2025.txt
new file mode 100644
index 0000000..587e7d2
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_23_2025.txt
@@ -0,0 +1,1154 @@
+--Service is started at 1/23/2025 11:28:30 AM
+--Service is started at 1/23/2025 12:22:42 PM
+--Service is stopped at 1/23/2025 12:23:16 PM
+--Service is started at 1/23/2025 12:24:21 PM
+MACHINE : 172.16.53.9 : NOT CONNECTED
+--Service is stopped at 1/23/2025 12:25:18 PM
+--Service is started at 1/23/2025 12:25:20 PM
+--Service is started at 1/23/2025 12:26:56 PM
+--Service is started at 1/23/2025 12:28:04 PM
+MACHINE : 172.16.53.9 : NOT CONNECTED
+--Service is stopped at 1/23/2025 12:28:33 PM
+--Service is started at 1/23/2025 12:28:35 PM
+MACHINE : 172.16.53.9 : NO DATA
+--Service is stopped at 1/23/2025 12:48:05 PM
+--Service is started at 1/23/2025 12:48:59 PM
+--Service is started at 1/23/2025 12:58:27 PM
+MACHINE : 172.16.53.9 : NOT CONNECTED
+--Service is stopped at 1/23/2025 12:58:54 PM
+--Service is started at 1/23/2025 12:59:13 PM
+MACHINE : 172.16.53.9 : NOT CONNECTED
+--Service is stopped at 1/23/2025 12:59:23 PM
+--Service is started at 1/23/2025 1:00:01 PM
+--Service is started at 1/23/2025 1:14:13 PM
+MACHINE: 172.16.53.8, EMP NO: 1592936, TIME: 1/22/2025 5:01:18 PM
+MACHINE: 172.16.53.8, EMP NO: 1591193, TIME: 1/22/2025 5:01:22 PM
+MACHINE: 172.16.53.8, EMP NO: 1593333, TIME: 1/22/2025 5:01:28 PM
+MACHINE: 172.16.53.8, EMP NO: 1589725, TIME: 1/22/2025 5:01:35 PM
+MACHINE: 172.16.53.8, EMP NO: 1591500, TIME: 1/22/2025 5:01:50 PM
+MACHINE: 172.16.53.8, EMP NO: 1593119, TIME: 1/22/2025 5:01:56 PM
+MACHINE: 172.16.53.8, EMP NO: 1592203, TIME: 1/22/2025 5:02:00 PM
+MACHINE: 172.16.53.8, EMP NO: 1591791, TIME: 1/22/2025 5:02:07 PM
+MACHINE: 172.16.53.8, EMP NO: 1590876, TIME: 1/22/2025 5:02:36 PM
+MACHINE: 172.16.53.8, EMP NO: 1588138, TIME: 1/22/2025 5:02:42 PM
+MACHINE: 172.16.53.8, EMP NO: 1590197, TIME: 1/22/2025 5:03:08 PM
+MACHINE: 172.16.53.8, EMP NO: 1586190, TIME: 1/22/2025 5:03:22 PM
+MACHINE: 172.16.53.8, EMP NO: 1586465, TIME: 1/22/2025 5:03:32 PM
+MACHINE: 172.16.53.8, EMP NO: 1590464, TIME: 1/22/2025 5:03:45 PM
+MACHINE: 172.16.53.8, EMP NO: 1590477, TIME: 1/22/2025 5:04:50 PM
+MACHINE: 172.16.53.8, EMP NO: 1590460, TIME: 1/22/2025 5:06:46 PM
+MACHINE: 172.16.53.8, EMP NO: 1590484, TIME: 1/22/2025 5:08:01 PM
+MACHINE: 172.16.53.8, EMP NO: 1593734, TIME: 1/22/2025 5:13:41 PM
+MACHINE: 172.16.53.8, EMP NO: 12401, TIME: 1/22/2025 5:18:35 PM
+MACHINE: 172.16.53.8, EMP NO: 1587826, TIME: 1/22/2025 5:23:21 PM
+MACHINE: 172.16.53.8, EMP NO: 12004, TIME: 1/22/2025 5:23:28 PM
+MACHINE: 172.16.53.8, EMP NO: 1592297, TIME: 1/22/2025 5:26:15 PM
+MACHINE: 172.16.53.8, EMP NO: 1521799, TIME: 1/22/2025 5:40:49 PM
+MACHINE: 172.16.53.8, EMP NO: 1511682, TIME: 1/22/2025 5:42:02 PM
+MACHINE: 172.16.53.8, EMP NO: 1592523, TIME: 1/22/2025 5:57:04 PM
+MACHINE: 172.16.53.8, EMP NO: 1591308, TIME: 1/22/2025 6:00:16 PM
+MACHINE: 172.16.53.8, EMP NO: 1591235, TIME: 1/22/2025 6:00:36 PM
+MACHINE: 172.16.53.8, EMP NO: 1592117, TIME: 1/22/2025 6:00:42 PM
+MACHINE: 172.16.53.8, EMP NO: 12433, TIME: 1/22/2025 6:00:47 PM
+MACHINE: 172.16.53.8, EMP NO: 11241, TIME: 1/22/2025 6:06:57 PM
+MACHINE: 172.16.53.8, EMP NO: 1591213, TIME: 1/22/2025 6:09:45 PM
+MACHINE: 172.16.53.8, EMP NO: 265313, TIME: 1/22/2025 6:10:14 PM
+MACHINE: 172.16.53.8, EMP NO: 1588166, TIME: 1/22/2025 6:12:47 PM
+MACHINE: 172.16.53.8, EMP NO: 220083, TIME: 1/22/2025 6:13:06 PM
+MACHINE: 172.16.53.8, EMP NO: 1591203, TIME: 1/22/2025 6:13:51 PM
+MACHINE: 172.16.53.8, EMP NO: 1590348, TIME: 1/22/2025 6:15:01 PM
+MACHINE: 172.16.53.8, EMP NO: 1511093, TIME: 1/22/2025 6:18:25 PM
+MACHINE: 172.16.53.8, EMP NO: 1521587, TIME: 1/22/2025 6:18:40 PM
+MACHINE: 172.16.53.8, EMP NO: 11362, TIME: 1/22/2025 6:18:54 PM
+MACHINE: 172.16.53.8, EMP NO: 1594257, TIME: 1/22/2025 6:21:03 PM
+MACHINE: 172.16.53.8, EMP NO: 211, TIME: 1/22/2025 6:27:03 PM
+MACHINE: 172.16.53.8, EMP NO: 12316, TIME: 1/22/2025 6:30:50 PM
+MACHINE: 172.16.53.8, EMP NO: 10568, TIME: 1/22/2025 6:31:03 PM
+MACHINE: 172.16.53.8, EMP NO: 1593001, TIME: 1/22/2025 6:31:49 PM
+MACHINE: 172.16.53.8, EMP NO: 1590157, TIME: 1/22/2025 6:33:41 PM
+MACHINE: 172.16.53.8, EMP NO: 441, TIME: 1/22/2025 6:33:57 PM
+MACHINE: 172.16.53.8, EMP NO: 1592056, TIME: 1/22/2025 6:34:51 PM
+MACHINE: 172.16.53.8, EMP NO: 11582, TIME: 1/22/2025 6:35:37 PM
+MACHINE: 172.16.53.8, EMP NO: 10322, TIME: 1/22/2025 6:42:12 PM
+MACHINE: 172.16.53.8, EMP NO: 11892, TIME: 1/22/2025 6:42:18 PM
+MACHINE: 172.16.53.8, EMP NO: 10567, TIME: 1/22/2025 6:47:05 PM
+MACHINE: 172.16.53.8, EMP NO: 1591689, TIME: 1/22/2025 6:48:25 PM
+MACHINE: 172.16.53.8, EMP NO: 8461, TIME: 1/22/2025 6:49:11 PM
+MACHINE: 172.16.53.8, EMP NO: 1592068, TIME: 1/22/2025 6:52:02 PM
+MACHINE: 172.16.53.8, EMP NO: 2224, TIME: 1/22/2025 6:52:59 PM
+MACHINE: 172.16.53.8, EMP NO: 12073, TIME: 1/22/2025 6:54:50 PM
+MACHINE: 172.16.53.8, EMP NO: 1589797, TIME: 1/22/2025 6:56:46 PM
+MACHINE: 172.16.53.8, EMP NO: 1588600, TIME: 1/22/2025 6:56:52 PM
+MACHINE: 172.16.53.8, EMP NO: 1586913, TIME: 1/22/2025 6:56:59 PM
+MACHINE: 172.16.53.8, EMP NO: 1586912, TIME: 1/22/2025 6:57:16 PM
+MACHINE: 172.16.53.8, EMP NO: 1580397, TIME: 1/22/2025 6:57:31 PM
+MACHINE: 172.16.53.8, EMP NO: 1590866, TIME: 1/22/2025 6:58:41 PM
+MACHINE: 172.16.53.8, EMP NO: 1588543, TIME: 1/22/2025 6:59:37 PM
+MACHINE: 172.16.53.8, EMP NO: 56226, TIME: 1/22/2025 6:59:53 PM
+MACHINE: 172.16.53.8, EMP NO: 1587556, TIME: 1/22/2025 7:00:27 PM
+MACHINE: 172.16.53.8, EMP NO: 10979, TIME: 1/22/2025 7:00:35 PM
+MACHINE: 172.16.53.8, EMP NO: 1586914, TIME: 1/22/2025 7:00:55 PM
+MACHINE: 172.16.53.8, EMP NO: 11986, TIME: 1/22/2025 7:01:09 PM
+MACHINE: 172.16.53.8, EMP NO: 12200, TIME: 1/22/2025 7:01:21 PM
+MACHINE: 172.16.53.8, EMP NO: 11349, TIME: 1/22/2025 7:02:42 PM
+MACHINE: 172.16.53.8, EMP NO: 10625, TIME: 1/22/2025 7:02:49 PM
+MACHINE: 172.16.53.8, EMP NO: 8960, TIME: 1/22/2025 7:03:37 PM
+MACHINE: 172.16.53.8, EMP NO: 4994, TIME: 1/22/2025 7:03:50 PM
+MACHINE: 172.16.53.8, EMP NO: 1593838, TIME: 1/22/2025 7:05:41 PM
+MACHINE: 172.16.53.8, EMP NO: 1521615, TIME: 1/22/2025 7:06:43 PM
+MACHINE: 172.16.53.8, EMP NO: 11354, TIME: 1/22/2025 7:06:53 PM
+MACHINE: 172.16.53.8, EMP NO: 1590022, TIME: 1/22/2025 7:07:06 PM
+MACHINE: 172.16.53.8, EMP NO: 265451, TIME: 1/22/2025 7:09:34 PM
+MACHINE: 172.16.53.8, EMP NO: 1593561, TIME: 1/22/2025 7:09:44 PM
+MACHINE: 172.16.53.8, EMP NO: 1592424, TIME: 1/22/2025 7:09:53 PM
+MACHINE: 172.16.53.8, EMP NO: 107, TIME: 1/22/2025 7:10:15 PM
+MACHINE: 172.16.53.8, EMP NO: 1593713, TIME: 1/22/2025 7:12:31 PM
+MACHINE: 172.16.53.8, EMP NO: 1593843, TIME: 1/22/2025 7:12:38 PM
+MACHINE: 172.16.53.8, EMP NO: 1511080, TIME: 1/22/2025 7:13:00 PM
+MACHINE: 172.16.53.8, EMP NO: 1575757, TIME: 1/22/2025 7:13:32 PM
+MACHINE: 172.16.53.8, EMP NO: 1594181, TIME: 1/22/2025 7:17:01 PM
+MACHINE: 172.16.53.8, EMP NO: 1593496, TIME: 1/22/2025 7:17:13 PM
+MACHINE: 172.16.53.8, EMP NO: 12493, TIME: 1/22/2025 7:18:07 PM
+MACHINE: 172.16.53.8, EMP NO: 12169, TIME: 1/22/2025 7:18:13 PM
+MACHINE: 172.16.53.8, EMP NO: 1576707, TIME: 1/22/2025 7:18:33 PM
+MACHINE: 172.16.53.8, EMP NO: 12350, TIME: 1/22/2025 7:24:35 PM
+MACHINE: 172.16.53.8, EMP NO: 3857, TIME: 1/22/2025 7:26:07 PM
+MACHINE: 172.16.53.8, EMP NO: 1579878, TIME: 1/22/2025 7:26:19 PM
+MACHINE: 172.16.53.8, EMP NO: 11789, TIME: 1/22/2025 7:27:56 PM
+MACHINE: 172.16.53.8, EMP NO: 1578009, TIME: 1/22/2025 7:29:04 PM
+MACHINE: 172.16.53.8, EMP NO: 221058, TIME: 1/22/2025 7:32:29 PM
+MACHINE: 172.16.53.8, EMP NO: 1579069, TIME: 1/22/2025 7:35:51 PM
+MACHINE: 172.16.53.8, EMP NO: 1516100, TIME: 1/22/2025 7:35:59 PM
+MACHINE: 172.16.53.8, EMP NO: 1566937, TIME: 1/22/2025 7:38:52 PM
+MACHINE: 172.16.53.8, EMP NO: 1478, TIME: 1/22/2025 7:39:47 PM
+MACHINE: 172.16.53.8, EMP NO: 4620, TIME: 1/22/2025 7:40:51 PM
+MACHINE: 172.16.53.8, EMP NO: 1580170, TIME: 1/22/2025 7:41:20 PM
+MACHINE: 172.16.53.8, EMP NO: 1583073, TIME: 1/22/2025 7:41:27 PM
+MACHINE: 172.16.53.8, EMP NO: 1579764, TIME: 1/22/2025 7:41:36 PM
+MACHINE: 172.16.53.8, EMP NO: 1586011, TIME: 1/22/2025 7:49:16 PM
+MACHINE: 172.16.53.8, EMP NO: 1588684, TIME: 1/22/2025 7:50:00 PM
+MACHINE: 172.16.53.8, EMP NO: 1579681, TIME: 1/22/2025 7:52:00 PM
+MACHINE: 172.16.53.8, EMP NO: 1570941, TIME: 1/22/2025 7:53:19 PM
+MACHINE: 172.16.53.8, EMP NO: 1568415, TIME: 1/22/2025 7:54:32 PM
+MACHINE: 172.16.53.8, EMP NO: 912, TIME: 1/22/2025 7:54:38 PM
+MACHINE: 172.16.53.8, EMP NO: 1593329, TIME: 1/22/2025 7:54:51 PM
+MACHINE: 172.16.53.8, EMP NO: 1505905, TIME: 1/22/2025 7:55:48 PM
+MACHINE: 172.16.53.8, EMP NO: 1593324, TIME: 1/22/2025 7:58:19 PM
+MACHINE: 172.16.53.8, EMP NO: 1592385, TIME: 1/22/2025 7:59:09 PM
+MACHINE: 172.16.53.8, EMP NO: 147, TIME: 1/22/2025 8:00:06 PM
+MACHINE: 172.16.53.8, EMP NO: 4589, TIME: 1/22/2025 8:01:18 PM
+MACHINE: 172.16.53.8, EMP NO: 1588794, TIME: 1/22/2025 8:01:54 PM
+MACHINE: 172.16.53.8, EMP NO: 1592385, TIME: 1/22/2025 8:02:58 PM
+MACHINE: 172.16.53.8, EMP NO: 11116, TIME: 1/22/2025 8:03:17 PM
+MACHINE: 172.16.53.8, EMP NO: 1592321, TIME: 1/22/2025 8:05:07 PM
+MACHINE: 172.16.53.8, EMP NO: 3318, TIME: 1/22/2025 8:06:19 PM
+MACHINE: 172.16.53.8, EMP NO: 1565585, TIME: 1/22/2025 8:06:57 PM
+MACHINE: 172.16.53.8, EMP NO: 3815, TIME: 1/22/2025 8:08:34 PM
+MACHINE: 172.16.53.8, EMP NO: 1573348, TIME: 1/22/2025 8:10:01 PM
+MACHINE: 172.16.53.8, EMP NO: 11170, TIME: 1/22/2025 8:14:01 PM
+MACHINE: 172.16.53.8, EMP NO: 12011, TIME: 1/22/2025 8:16:13 PM
+MACHINE: 172.16.53.8, EMP NO: 808, TIME: 1/22/2025 8:17:20 PM
+MACHINE: 172.16.53.8, EMP NO: 1593825, TIME: 1/22/2025 8:27:55 PM
+MACHINE: 172.16.53.8, EMP NO: 1591568, TIME: 1/22/2025 8:28:00 PM
+MACHINE: 172.16.53.8, EMP NO: 265374, TIME: 1/22/2025 8:28:26 PM
+MACHINE: 172.16.53.8, EMP NO: 1592523, TIME: 1/22/2025 8:29:19 PM
+MACHINE: 172.16.53.8, EMP NO: 1592385, TIME: 1/22/2025 8:30:00 PM
+MACHINE: 172.16.53.8, EMP NO: 1592625, TIME: 1/22/2025 8:30:13 PM
+MACHINE: 172.16.53.8, EMP NO: 11797, TIME: 1/22/2025 8:40:09 PM
+MACHINE: 172.16.53.8, EMP NO: 1514750, TIME: 1/22/2025 8:46:22 PM
+MACHINE: 172.16.53.8, EMP NO: 1591243, TIME: 1/22/2025 8:54:54 PM
+MACHINE: 172.16.53.8, EMP NO: 1591234, TIME: 1/22/2025 8:55:02 PM
+MACHINE: 172.16.53.8, EMP NO: 1593468, TIME: 1/22/2025 9:00:47 PM
+MACHINE: 172.16.53.8, EMP NO: 8459, TIME: 1/22/2025 9:02:09 PM
+MACHINE: 172.16.53.8, EMP NO: 664, TIME: 1/22/2025 9:26:01 PM
+MACHINE: 172.16.53.8, EMP NO: 265631, TIME: 1/22/2025 9:35:38 PM
+MACHINE: 172.16.53.8, EMP NO: 794, TIME: 1/22/2025 9:47:09 PM
+MACHINE: 172.16.53.8, EMP NO: 10610, TIME: 1/22/2025 9:47:24 PM
+MACHINE: 172.16.53.8, EMP NO: 9527, TIME: 1/22/2025 9:48:05 PM
+MACHINE: 172.16.53.8, EMP NO: 12117, TIME: 1/22/2025 10:07:11 PM
+MACHINE: 172.16.53.8, EMP NO: 1591245, TIME: 1/22/2025 11:27:21 PM
+MACHINE: 172.16.53.8, EMP NO: 1591228, TIME: 1/22/2025 11:27:29 PM
+MACHINE: 172.16.53.8, EMP NO: 56226, TIME: 1/23/2025 7:00:52 AM
+MACHINE: 172.16.53.8, EMP NO: 1592203, TIME: 1/23/2025 7:40:24 AM
+MACHINE: 172.16.53.8, EMP NO: 1590477, TIME: 1/23/2025 7:50:26 AM
+MACHINE: 172.16.53.8, EMP NO: 1593119, TIME: 1/23/2025 7:50:36 AM
+MACHINE: 172.16.53.8, EMP NO: 1586067, TIME: 1/23/2025 7:50:45 AM
+MACHINE: 172.16.53.8, EMP NO: 1593278, TIME: 1/23/2025 7:50:59 AM
+MACHINE: 172.16.53.8, EMP NO: 1590387, TIME: 1/23/2025 7:53:00 AM
+MACHINE: 172.16.53.8, EMP NO: 1592936, TIME: 1/23/2025 7:57:17 AM
+MACHINE: 172.16.53.8, EMP NO: 1593333, TIME: 1/23/2025 7:57:23 AM
+MACHINE: 172.16.53.8, EMP NO: 1590484, TIME: 1/23/2025 7:57:29 AM
+MACHINE: 172.16.53.8, EMP NO: 1590876, TIME: 1/23/2025 7:57:55 AM
+MACHINE: 172.16.53.8, EMP NO: 1591791, TIME: 1/23/2025 7:59:38 AM
+MACHINE: 172.16.53.8, EMP NO: 1591643, TIME: 1/23/2025 7:59:48 AM
+MACHINE: 172.16.53.8, EMP NO: 1591500, TIME: 1/23/2025 8:00:20 AM
+MACHINE: 172.16.53.8, EMP NO: 4589, TIME: 1/23/2025 8:00:41 AM
+MACHINE: 172.16.53.8, EMP NO: 4620, TIME: 1/23/2025 8:00:54 AM
+MACHINE: 172.16.53.8, EMP NO: 1590460, TIME: 1/23/2025 8:01:56 AM
+MACHINE: 172.16.53.8, EMP NO: 1590204, TIME: 1/23/2025 8:02:10 AM
+MACHINE: 172.16.53.8, EMP NO: 1589725, TIME: 1/23/2025 8:05:38 AM
+MACHINE: 172.16.53.8, EMP NO: 1588138, TIME: 1/23/2025 8:10:25 AM
+MACHINE: 172.16.53.8, EMP NO: 1590197, TIME: 1/23/2025 8:10:31 AM
+MACHINE: 172.16.53.8, EMP NO: 1590464, TIME: 1/23/2025 8:11:40 AM
+MACHINE: 172.16.53.8, EMP NO: 1591193, TIME: 1/23/2025 8:14:04 AM
+MACHINE: 172.16.53.8, EMP NO: 1586088, TIME: 1/23/2025 8:17:01 AM
+MACHINE: 172.16.53.8, EMP NO: 12401, TIME: 1/23/2025 8:18:47 AM
+MACHINE: 172.16.53.8, EMP NO: 1586190, TIME: 1/23/2025 8:20:36 AM
+MACHINE: 172.16.53.8, EMP NO: 12004, TIME: 1/23/2025 8:21:07 AM
+MACHINE: 172.16.53.8, EMP NO: 265374, TIME: 1/23/2025 8:22:10 AM
+MACHINE: 172.16.53.8, EMP NO: 1578065, TIME: 1/23/2025 8:33:01 AM
+MACHINE: 172.16.53.8, EMP NO: 265631, TIME: 1/23/2025 8:39:30 AM
+MACHINE: 172.16.53.8, EMP NO: 12433, TIME: 1/23/2025 8:39:41 AM
+MACHINE: 172.16.53.8, EMP NO: 1578009, TIME: 1/23/2025 8:44:54 AM
+MACHINE: 172.16.53.8, EMP NO: 11283, TIME: 1/23/2025 8:45:29 AM
+MACHINE: 172.16.53.8, EMP NO: 1594257, TIME: 1/23/2025 8:48:08 AM
+MACHINE: 172.16.53.8, EMP NO: 1579878, TIME: 1/23/2025 8:50:24 AM
+MACHINE: 172.16.53.8, EMP NO: 220083, TIME: 1/23/2025 8:51:58 AM
+MACHINE: 172.16.53.8, EMP NO: 1588600, TIME: 1/23/2025 8:52:37 AM
+MACHINE: 172.16.53.8, EMP NO: 1511682, TIME: 1/23/2025 8:55:08 AM
+MACHINE: 172.16.53.8, EMP NO: 1588794, TIME: 1/23/2025 8:55:18 AM
+MACHINE: 172.16.53.8, EMP NO: 3442, TIME: 1/23/2025 8:56:09 AM
+MACHINE: 172.16.53.8, EMP NO: 11589, TIME: 1/23/2025 8:57:40 AM
+MACHINE: 172.16.53.8, EMP NO: 9335, TIME: 1/23/2025 8:57:47 AM
+MACHINE: 172.16.53.8, EMP NO: 12098, TIME: 1/23/2025 8:57:59 AM
+MACHINE: 172.16.53.8, EMP NO: 1592380, TIME: 1/23/2025 8:58:10 AM
+MACHINE: 172.16.53.8, EMP NO: 12042, TIME: 1/23/2025 8:58:17 AM
+MACHINE: 172.16.53.8, EMP NO: 1588543, TIME: 1/23/2025 8:58:24 AM
+MACHINE: 172.16.53.8, EMP NO: 1592385, TIME: 1/23/2025 8:59:02 AM
+MACHINE: 172.16.53.8, EMP NO: 1587556, TIME: 1/23/2025 8:59:15 AM
+MACHINE: 172.16.53.8, EMP NO: 12501, TIME: 1/23/2025 8:59:31 AM
+MACHINE: 172.16.53.8, EMP NO: 11116, TIME: 1/23/2025 8:59:39 AM
+MACHINE: 172.16.53.8, EMP NO: 1511080, TIME: 1/23/2025 8:59:47 AM
+MACHINE: 172.16.53.8, EMP NO: 1591203, TIME: 1/23/2025 8:59:53 AM
+MACHINE: 172.16.53.8, EMP NO: 3318, TIME: 1/23/2025 9:00:50 AM
+MACHINE: 172.16.53.8, EMP NO: 1593713, TIME: 1/23/2025 9:01:39 AM
+MACHINE: 172.16.53.8, EMP NO: 1579069, TIME: 1/23/2025 9:03:32 AM
+MACHINE: 172.16.53.8, EMP NO: 11797, TIME: 1/23/2025 9:03:46 AM
+MACHINE: 172.16.53.8, EMP NO: 1592400, TIME: 1/23/2025 9:03:52 AM
+MACHINE: 172.16.53.8, EMP NO: 1586913, TIME: 1/23/2025 9:03:58 AM
+MACHINE: 172.16.53.8, EMP NO: 1590878, TIME: 1/23/2025 9:04:02 AM
+MACHINE: 172.16.53.8, EMP NO: 1569784, TIME: 1/23/2025 9:04:54 AM
+MACHINE: 172.16.53.8, EMP NO: 8461, TIME: 1/23/2025 9:05:14 AM
+MACHINE: 172.16.53.8, EMP NO: 265451, TIME: 1/23/2025 9:05:35 AM
+MACHINE: 172.16.53.8, EMP NO: 1586914, TIME: 1/23/2025 9:06:11 AM
+MACHINE: 172.16.53.8, EMP NO: 1592424, TIME: 1/23/2025 9:07:17 AM
+MACHINE: 172.16.53.8, EMP NO: 1593561, TIME: 1/23/2025 9:07:22 AM
+MACHINE: 172.16.53.8, EMP NO: 1593709, TIME: 1/23/2025 9:07:42 AM
+MACHINE: 172.16.53.8, EMP NO: 11350, TIME: 1/23/2025 9:07:48 AM
+MACHINE: 172.16.53.8, EMP NO: 234, TIME: 1/23/2025 9:10:42 AM
+MACHINE: 172.16.53.8, EMP NO: 10567, TIME: 1/23/2025 9:10:47 AM
+MACHINE: 172.16.53.8, EMP NO: 1591234, TIME: 1/23/2025 9:10:57 AM
+MACHINE: 172.16.53.8, EMP NO: 10979, TIME: 1/23/2025 9:11:39 AM
+MACHINE: 172.16.53.8, EMP NO: 441, TIME: 1/23/2025 9:12:29 AM
+MACHINE: 172.16.53.8, EMP NO: 1593251, TIME: 1/23/2025 9:13:22 AM
+MACHINE: 172.16.53.8, EMP NO: 9981, TIME: 1/23/2025 9:13:35 AM
+MACHINE: 172.16.53.8, EMP NO: 1590866, TIME: 1/23/2025 9:13:44 AM
+MACHINE: 172.16.53.8, EMP NO: 1589797, TIME: 1/23/2025 9:13:48 AM
+MACHINE: 172.16.53.8, EMP NO: 10322, TIME: 1/23/2025 9:14:59 AM
+MACHINE: 172.16.53.8, EMP NO: 11892, TIME: 1/23/2025 9:15:06 AM
+MACHINE: 172.16.53.8, EMP NO: 1587778, TIME: 1/23/2025 9:15:12 AM
+MACHINE: 172.16.53.8, EMP NO: 1593329, TIME: 1/23/2025 9:15:16 AM
+MACHINE: 172.16.53.8, EMP NO: 11582, TIME: 1/23/2025 9:16:14 AM
+MACHINE: 172.16.53.8, EMP NO: 1590872, TIME: 1/23/2025 9:17:09 AM
+MACHINE: 172.16.53.8, EMP NO: 10725, TIME: 1/23/2025 9:17:15 AM
+MACHINE: 172.16.53.8, EMP NO: 1589439, TIME: 1/23/2025 9:18:55 AM
+MACHINE: 172.16.53.8, EMP NO: 1575757, TIME: 1/23/2025 9:19:03 AM
+MACHINE: 172.16.53.8, EMP NO: 1592281, TIME: 1/23/2025 9:19:46 AM
+MACHINE: 172.16.53.8, EMP NO: 1592388, TIME: 1/23/2025 9:19:54 AM
+MACHINE: 172.16.53.8, EMP NO: 1566937, TIME: 1/23/2025 9:20:37 AM
+MACHINE: 172.16.53.8, EMP NO: 1514156, TIME: 1/23/2025 9:20:59 AM
+MACHINE: 172.16.53.8, EMP NO: 1589338, TIME: 1/23/2025 9:21:05 AM
+MACHINE: 172.16.53.8, EMP NO: 11170, TIME: 1/23/2025 9:22:53 AM
+MACHINE: 172.16.53.8, EMP NO: 1591213, TIME: 1/23/2025 9:23:10 AM
+MACHINE: 172.16.53.8, EMP NO: 147, TIME: 1/23/2025 9:23:48 AM
+MACHINE: 172.16.53.8, EMP NO: 5556, TIME: 1/23/2025 9:24:45 AM
+MACHINE: 172.16.53.8, EMP NO: 10568, TIME: 1/23/2025 9:25:20 AM
+MACHINE: 172.16.53.8, EMP NO: 12316, TIME: 1/23/2025 9:25:34 AM
+MACHINE: 172.16.53.8, EMP NO: 1507994, TIME: 1/23/2025 9:26:28 AM
+MACHINE: 172.16.53.8, EMP NO: 1573348, TIME: 1/23/2025 9:27:19 AM
+MACHINE: 172.16.53.8, EMP NO: 107, TIME: 1/23/2025 9:27:49 AM
+MACHINE: 172.16.53.8, EMP NO: 12073, TIME: 1/23/2025 9:28:31 AM
+MACHINE: 172.16.53.8, EMP NO: 9527, TIME: 1/23/2025 9:29:20 AM
+MACHINE: 172.16.53.8, EMP NO: 1516100, TIME: 1/23/2025 9:29:35 AM
+MACHINE: 172.16.53.8, EMP NO: 12127, TIME: 1/23/2025 9:29:48 AM
+MACHINE: 172.16.53.8, EMP NO: 9422, TIME: 1/23/2025 9:30:01 AM
+MACHINE: 172.16.53.8, EMP NO: 12209, TIME: 1/23/2025 9:30:08 AM
+MACHINE: 172.16.53.8, EMP NO: 1591209, TIME: 1/23/2025 9:30:59 AM
+MACHINE: 172.16.53.8, EMP NO: 11354, TIME: 1/23/2025 9:32:36 AM
+MACHINE: 172.16.53.8, EMP NO: 221058, TIME: 1/23/2025 9:33:01 AM
+MACHINE: 172.16.53.8, EMP NO: 1579247, TIME: 1/23/2025 9:33:12 AM
+MACHINE: 172.16.53.8, EMP NO: 10894, TIME: 1/23/2025 9:36:51 AM
+MACHINE: 172.16.53.8, EMP NO: 1565585, TIME: 1/23/2025 9:36:57 AM
+MACHINE: 172.16.53.8, EMP NO: 1579871, TIME: 1/23/2025 9:37:20 AM
+MACHINE: 172.16.53.8, EMP NO: 1591098, TIME: 1/23/2025 9:37:34 AM
+MACHINE: 172.16.53.8, EMP NO: 1592068, TIME: 1/23/2025 9:41:04 AM
+MACHINE: 172.16.53.8, EMP NO: 1594338, TIME: 1/23/2025 9:42:19 AM
+MACHINE: 172.16.53.8, EMP NO: 912, TIME: 1/23/2025 9:42:31 AM
+MACHINE: 172.16.53.8, EMP NO: 1588166, TIME: 1/23/2025 9:43:02 AM
+MACHINE: 172.16.53.8, EMP NO: 1586011, TIME: 1/23/2025 9:44:35 AM
+MACHINE: 172.16.53.8, EMP NO: 1591689, TIME: 1/23/2025 9:45:52 AM
+MACHINE: 172.16.53.8, EMP NO: 1588869, TIME: 1/23/2025 9:46:06 AM
+MACHINE: 172.16.53.8, EMP NO: 1583073, TIME: 1/23/2025 9:51:43 AM
+MACHINE: 172.16.53.8, EMP NO: 9248, TIME: 1/23/2025 9:51:48 AM
+MACHINE: 172.16.53.8, EMP NO: 1578247, TIME: 1/23/2025 9:52:55 AM
+MACHINE: 172.16.53.8, EMP NO: 2224, TIME: 1/23/2025 9:53:25 AM
+MACHINE: 172.16.53.8, EMP NO: 1594338, TIME: 1/23/2025 9:54:55 AM
+MACHINE: 172.16.53.8, EMP NO: 1592321, TIME: 1/23/2025 9:58:08 AM
+MACHINE: 172.16.53.8, EMP NO: 1589705, TIME: 1/23/2025 9:58:27 AM
+MACHINE: 172.16.53.8, EMP NO: 1509467, TIME: 1/23/2025 10:00:44 AM
+MACHINE: 172.16.53.8, EMP NO: 1586912, TIME: 1/23/2025 10:04:44 AM
+MACHINE: 172.16.53.8, EMP NO: 12493, TIME: 1/23/2025 10:07:51 AM
+MACHINE: 172.16.53.8, EMP NO: 12350, TIME: 1/23/2025 10:13:37 AM
+MACHINE: 172.16.53.8, EMP NO: 1592253, TIME: 1/23/2025 10:21:07 AM
+MACHINE: 172.16.53.8, EMP NO: 1589638, TIME: 1/23/2025 10:22:58 AM
+MACHINE: 172.16.53.8, EMP NO: 794, TIME: 1/23/2025 10:23:07 AM
+MACHINE: 172.16.53.8, EMP NO: 1590394, TIME: 1/23/2025 10:25:35 AM
+MACHINE: 172.16.53.8, EMP NO: 808, TIME: 1/23/2025 10:29:13 AM
+MACHINE: 172.16.53.8, EMP NO: 1578085, TIME: 1/23/2025 10:30:55 AM
+MACHINE: 172.16.53.8, EMP NO: 1593002, TIME: 1/23/2025 10:39:45 AM
+MACHINE: 172.16.53.8, EMP NO: 12169, TIME: 1/23/2025 10:43:17 AM
+MACHINE: 172.16.53.8, EMP NO: 12117, TIME: 1/23/2025 11:05:14 AM
+MACHINE: 172.16.53.8, EMP NO: 1578085, TIME: 1/23/2025 11:06:46 AM
+MACHINE: 172.16.53.8, EMP NO: 1516788, TIME: 1/23/2025 11:08:56 AM
+MACHINE: 172.16.53.8, EMP NO: 1579456, TIME: 1/23/2025 11:25:50 AM
+MACHINE: 172.16.53.8, EMP NO: 1594350, TIME: 1/23/2025 11:27:30 AM
+MACHINE: 172.16.53.8, EMP NO: 1503376, TIME: 1/23/2025 11:34:09 AM
+MACHINE: 172.16.53.8, EMP NO: 8459, TIME: 1/23/2025 12:03:46 PM
+MACHINE: 172.16.53.8, EMP NO: 265631, TIME: 1/23/2025 12:42:44 PM
+MACHINE: 172.16.53.8, EMP NO: 1578247, TIME: 1/23/2025 12:49:04 PM
+Error during bulk insert: Unknown column 'AcNo' in 'field list'
+--Service is stopped at 1/23/2025 1:20:41 PM
+--Service is started at 1/23/2025 1:20:59 PM
+MACHINE: 172.16.53.8, EMP NO: 1593468, TIME: 1/23/2025 1:21:09 PM
+Error during bulk insert: Unknown column 'AcNo' in 'field list'
+--Service is stopped at 1/23/2025 1:21:20 PM
+--Service is started at 1/23/2025 1:21:39 PM
+MACHINE: 172.16.53.8 - No data available.
+--Service is stopped at 1/23/2025 1:21:48 PM
+--Service is started at 1/23/2025 1:26:43 PM
+--Service is started at 1/23/2025 1:28:58 PM
+MACHINE: 172.16.53.8, EMP NO: 8459, TIME: 1/23/2025 1:25:53 PM
+Successfully inserted 1 records for MACHINE: 172.16.53.8
+1001 marked deleted in db --> 21
+10075 marked deleted in db --> 21
+10080 marked deleted in db --> 21
+10139 marked deleted in db --> 21
+10174 marked deleted in db --> 21
+1021 marked deleted in db --> 21
+10229 marked deleted in db --> 21
+10262 marked deleted in db --> 21
+10322 marked deleted in db --> 21
+10326 marked deleted in db --> 21
+10434 marked deleted in db --> 21
+10446 marked deleted in db --> 21
+10484 marked deleted in db --> 21
+10565 marked deleted in db --> 21
+10567 marked deleted in db --> 21
+10568 marked deleted in db --> 21
+10569 marked deleted in db --> 21
+10584 marked deleted in db --> 21
+10596 marked deleted in db --> 21
+10610 marked deleted in db --> 21
+10625 marked deleted in db --> 21
+10631 marked deleted in db --> 21
+10680 marked deleted in db --> 21
+107 marked deleted in db --> 21
+10707 marked deleted in db --> 21
+10725 marked deleted in db --> 21
+10756 marked deleted in db --> 21
+10757 marked deleted in db --> 21
+10799 marked deleted in db --> 21
+10832 marked deleted in db --> 21
+10837 marked deleted in db --> 21
+10863 marked deleted in db --> 21
+10875 marked deleted in db --> 21
+10894 marked deleted in db --> 21
+10902 marked deleted in db --> 21
+10931 marked deleted in db --> 21
+10975 marked deleted in db --> 21
+10979 marked deleted in db --> 21
+11039 marked deleted in db --> 21
+11058 marked deleted in db --> 21
+11089 marked deleted in db --> 21
+111 marked deleted in db --> 21
+11105 marked deleted in db --> 21
+11111 marked deleted in db --> 21
+11116 marked deleted in db --> 21
+11132 marked deleted in db --> 21
+11167 marked deleted in db --> 21
+11170 marked deleted in db --> 21
+11200 marked deleted in db --> 21
+11215 marked deleted in db --> 21
+11216 marked deleted in db --> 21
+11219 marked deleted in db --> 21
+11225 marked deleted in db --> 21
+11231 marked deleted in db --> 21
+11241 marked deleted in db --> 21
+11283 marked deleted in db --> 21
+11286 marked deleted in db --> 21
+11290 marked deleted in db --> 21
+11291 marked deleted in db --> 21
+11318 marked deleted in db --> 21
+11330 marked deleted in db --> 21
+11337 marked deleted in db --> 21
+11343 marked deleted in db --> 21
+11349 marked deleted in db --> 21
+11350 marked deleted in db --> 21
+11354 marked deleted in db --> 21
+11362 marked deleted in db --> 21
+11384 marked deleted in db --> 21
+11399 marked deleted in db --> 21
+11419 marked deleted in db --> 21
+11480 marked deleted in db --> 21
+11582 marked deleted in db --> 21
+11589 marked deleted in db --> 21
+11594 marked deleted in db --> 21
+11603 marked deleted in db --> 21
+11618 marked deleted in db --> 21
+11626 marked deleted in db --> 21
+11638 marked deleted in db --> 21
+11656 marked deleted in db --> 21
+11685 marked deleted in db --> 21
+11704 marked deleted in db --> 21
+11706 marked deleted in db --> 21
+11741 marked deleted in db --> 21
+11789 marked deleted in db --> 21
+11790 marked deleted in db --> 21
+11795 marked deleted in db --> 21
+11797 marked deleted in db --> 21
+11820 marked deleted in db --> 21
+11870 marked deleted in db --> 21
+11892 marked deleted in db --> 21
+11914 marked deleted in db --> 21
+11932 marked deleted in db --> 21
+11940 marked deleted in db --> 21
+11967 marked deleted in db --> 21
+11974 marked deleted in db --> 21
+1198 marked deleted in db --> 21
+11986 marked deleted in db --> 21
+12004 marked deleted in db --> 21
+12011 marked deleted in db --> 21
+12042 marked deleted in db --> 21
+12057 marked deleted in db --> 21
+12059 marked deleted in db --> 21
+12062 marked deleted in db --> 21
+12073 marked deleted in db --> 21
+12091 marked deleted in db --> 21
+12097 marked deleted in db --> 21
+12098 marked deleted in db --> 21
+12102 marked deleted in db --> 21
+12117 marked deleted in db --> 21
+12119 marked deleted in db --> 21
+12127 marked deleted in db --> 21
+12128 marked deleted in db --> 21
+12169 marked deleted in db --> 21
+12173 marked deleted in db --> 21
+12182 marked deleted in db --> 21
+12185 marked deleted in db --> 21
+12200 marked deleted in db --> 21
+12201 marked deleted in db --> 21
+12203 marked deleted in db --> 21
+12204 marked deleted in db --> 21
+12205 marked deleted in db --> 21
+12209 marked deleted in db --> 21
+12244 marked deleted in db --> 21
+12255 marked deleted in db --> 21
+12266 marked deleted in db --> 21
+12280 marked deleted in db --> 21
+12287 marked deleted in db --> 21
+12291 marked deleted in db --> 21
+12316 marked deleted in db --> 21
+12328 marked deleted in db --> 21
+12336 marked deleted in db --> 21
+12349 marked deleted in db --> 21
+12350 marked deleted in db --> 21
+12386 marked deleted in db --> 21
+12387 marked deleted in db --> 21
+12389 marked deleted in db --> 21
+12397 marked deleted in db --> 21
+12398 marked deleted in db --> 21
+12399 marked deleted in db --> 21
+12401 marked deleted in db --> 21
+12406 marked deleted in db --> 21
+12432 marked deleted in db --> 21
+12433 marked deleted in db --> 21
+12434 marked deleted in db --> 21
+12439 marked deleted in db --> 21
+12474 marked deleted in db --> 21
+12493 marked deleted in db --> 21
+12497 marked deleted in db --> 21
+12501 marked deleted in db --> 21
+12528 marked deleted in db --> 21
+12551 marked deleted in db --> 21
+1300 marked deleted in db --> 21
+1434 marked deleted in db --> 21
+147 marked deleted in db --> 21
+1478 marked deleted in db --> 21
+1500077 marked deleted in db --> 21
+1500106 marked deleted in db --> 21
+1500754 marked deleted in db --> 21
+1502432 marked deleted in db --> 21
+1502563 marked deleted in db --> 21
+1503376 marked deleted in db --> 21
+1503823 marked deleted in db --> 21
+1503884 marked deleted in db --> 21
+1505905 marked deleted in db --> 21
+1506820 marked deleted in db --> 21
+1507994 marked deleted in db --> 21
+1508427 marked deleted in db --> 21
+1508667 marked deleted in db --> 21
+1508874 marked deleted in db --> 21
+1508875 marked deleted in db --> 21
+1509313 marked deleted in db --> 21
+1509467 marked deleted in db --> 21
+1511080 marked deleted in db --> 21
+1511092 marked deleted in db --> 21
+1511093 marked deleted in db --> 21
+1511135 marked deleted in db --> 21
+1511283 marked deleted in db --> 21
+1511682 marked deleted in db --> 21
+1512146 marked deleted in db --> 21
+1513611 marked deleted in db --> 21
+1514156 marked deleted in db --> 21
+1514355 marked deleted in db --> 21
+1514750 marked deleted in db --> 21
+1514995 marked deleted in db --> 21
+1515329 marked deleted in db --> 21
+1515624 marked deleted in db --> 21
+1516100 marked deleted in db --> 21
+1516298 marked deleted in db --> 21
+1516398 marked deleted in db --> 21
+1516785 marked deleted in db --> 21
+1516788 marked deleted in db --> 21
+1517748 marked deleted in db --> 21
+1518311 marked deleted in db --> 21
+1518973 marked deleted in db --> 21
+1519206 marked deleted in db --> 21
+1519916 marked deleted in db --> 21
+1521282 marked deleted in db --> 21
+1521309 marked deleted in db --> 21
+1521587 marked deleted in db --> 21
+1521608 marked deleted in db --> 21
+1521615 marked deleted in db --> 21
+1521799 marked deleted in db --> 21
+1522445 marked deleted in db --> 21
+1522733 marked deleted in db --> 21
+1524157 marked deleted in db --> 21
+1524618 marked deleted in db --> 21
+1564014 marked deleted in db --> 21
+1564394 marked deleted in db --> 21
+1564413 marked deleted in db --> 21
+1565051 marked deleted in db --> 21
+1565585 marked deleted in db --> 21
+1565650 marked deleted in db --> 21
+1566037 marked deleted in db --> 21
+1566460 marked deleted in db --> 21
+1566937 marked deleted in db --> 21
+1567795 marked deleted in db --> 21
+1567854 marked deleted in db --> 21
+1568415 marked deleted in db --> 21
+1568538 marked deleted in db --> 21
+1568557 marked deleted in db --> 21
+1568594 marked deleted in db --> 21
+1568762 marked deleted in db --> 21
+1568929 marked deleted in db --> 21
+1568991 marked deleted in db --> 21
+1569041 marked deleted in db --> 21
+1569466 marked deleted in db --> 21
+1569680 marked deleted in db --> 21
+1569698 marked deleted in db --> 21
+1569784 marked deleted in db --> 21
+1569919 marked deleted in db --> 21
+1570941 marked deleted in db --> 21
+1571187 marked deleted in db --> 21
+1571551 marked deleted in db --> 21
+1571700 marked deleted in db --> 21
+1572230 marked deleted in db --> 21
+1572248 marked deleted in db --> 21
+1572970 marked deleted in db --> 21
+1573043 marked deleted in db --> 21
+1573348 marked deleted in db --> 21
+1573363 marked deleted in db --> 21
+1573431 marked deleted in db --> 21
+1573617 marked deleted in db --> 21
+1574105 marked deleted in db --> 21
+1574763 marked deleted in db --> 21
+1574931 marked deleted in db --> 21
+1575014 marked deleted in db --> 21
+1575668 marked deleted in db --> 21
+1575757 marked deleted in db --> 21
+1576144 marked deleted in db --> 21
+1576542 marked deleted in db --> 21
+1576564 marked deleted in db --> 21
+1576707 marked deleted in db --> 21
+1576863 marked deleted in db --> 21
+1577112 marked deleted in db --> 21
+1577118 marked deleted in db --> 21
+1577401 marked deleted in db --> 21
+1577601 marked deleted in db --> 21
+1577946 marked deleted in db --> 21
+1578006 marked deleted in db --> 21
+1578009 marked deleted in db --> 21
+1578065 marked deleted in db --> 21
+1578085 marked deleted in db --> 21
+1578218 marked deleted in db --> 21
+1578247 marked deleted in db --> 21
+1578493 marked deleted in db --> 21
+1578774 marked deleted in db --> 21
+1578862 marked deleted in db --> 21
+1578905 marked deleted in db --> 21
+1578927 marked deleted in db --> 21
+1578963 marked deleted in db --> 21
+1579069 marked deleted in db --> 21
+1579247 marked deleted in db --> 21
+1579436 marked deleted in db --> 21
+1579456 marked deleted in db --> 21
+1579587 marked deleted in db --> 21
+1579630 marked deleted in db --> 21
+1579681 marked deleted in db --> 21
+1579764 marked deleted in db --> 21
+1579871 marked deleted in db --> 21
+1579874 marked deleted in db --> 21
+1579878 marked deleted in db --> 21
+1579920 marked deleted in db --> 21
+1580170 marked deleted in db --> 21
+1580180 marked deleted in db --> 21
+1580186 marked deleted in db --> 21
+1580201 marked deleted in db --> 21
+1580217 marked deleted in db --> 21
+1580218 marked deleted in db --> 21
+1580222 marked deleted in db --> 21
+1580240 marked deleted in db --> 21
+1580241 marked deleted in db --> 21
+1580280 marked deleted in db --> 21
+1580282 marked deleted in db --> 21
+1580287 marked deleted in db --> 21
+1580303 marked deleted in db --> 21
+1580306 marked deleted in db --> 21
+1580310 marked deleted in db --> 21
+1580314 marked deleted in db --> 21
+1580394 marked deleted in db --> 21
+1580397 marked deleted in db --> 21
+1580400 marked deleted in db --> 21
+1580410 marked deleted in db --> 21
+1580412 marked deleted in db --> 21
+1580415 marked deleted in db --> 21
+1580422 marked deleted in db --> 21
+1580430 marked deleted in db --> 21
+1580438 marked deleted in db --> 21
+1580483 marked deleted in db --> 21
+1580584 marked deleted in db --> 21
+1580959 marked deleted in db --> 21
+1580994 marked deleted in db --> 21
+1581030 marked deleted in db --> 21
+1581106 marked deleted in db --> 21
+1581165 marked deleted in db --> 21
+1581498 marked deleted in db --> 21
+1581997 marked deleted in db --> 21
+1582095 marked deleted in db --> 21
+1582123 marked deleted in db --> 21
+1582225 marked deleted in db --> 21
+1582315 marked deleted in db --> 21
+1582316 marked deleted in db --> 21
+1582856 marked deleted in db --> 21
+1582913 marked deleted in db --> 21
+1583007 marked deleted in db --> 21
+1583073 marked deleted in db --> 21
+1583184 marked deleted in db --> 21
+1583401 marked deleted in db --> 21
+1583439 marked deleted in db --> 21
+1583550 marked deleted in db --> 21
+1583558 marked deleted in db --> 21
+1583717 marked deleted in db --> 21
+1584051 marked deleted in db --> 21
+1584166 marked deleted in db --> 21
+1584358 marked deleted in db --> 21
+1584373 marked deleted in db --> 21
+1584377 marked deleted in db --> 21
+1584608 marked deleted in db --> 21
+1584707 marked deleted in db --> 21
+1584842 marked deleted in db --> 21
+1584951 marked deleted in db --> 21
+1585032 marked deleted in db --> 21
+1585342 marked deleted in db --> 21
+1585352 marked deleted in db --> 21
+1585741 marked deleted in db --> 21
+1585817 marked deleted in db --> 21
+1585837 marked deleted in db --> 21
+1585866 marked deleted in db --> 21
+1586011 marked deleted in db --> 21
+1586067 marked deleted in db --> 21
+1586076 marked deleted in db --> 21
+1586088 marked deleted in db --> 21
+1586098 marked deleted in db --> 21
+1586190 marked deleted in db --> 21
+1586315 marked deleted in db --> 21
+1586319 marked deleted in db --> 21
+1586352 marked deleted in db --> 21
+1586406 marked deleted in db --> 21
+1586465 marked deleted in db --> 21
+1586634 marked deleted in db --> 21
+1586818 marked deleted in db --> 21
+1586828 marked deleted in db --> 21
+1586864 marked deleted in db --> 21
+1586879 marked deleted in db --> 21
+1586910 marked deleted in db --> 21
+1586912 marked deleted in db --> 21
+1586913 marked deleted in db --> 21
+1586914 marked deleted in db --> 21
+1587099 marked deleted in db --> 21
+1587230 marked deleted in db --> 21
+1587233 marked deleted in db --> 21
+1587395 marked deleted in db --> 21
+1587556 marked deleted in db --> 21
+1587636 marked deleted in db --> 21
+1587651 marked deleted in db --> 21
+1587653 marked deleted in db --> 21
+1587776 marked deleted in db --> 21
+1587778 marked deleted in db --> 21
+1587826 marked deleted in db --> 21
+1587890 marked deleted in db --> 21
+1588138 marked deleted in db --> 21
+1588166 marked deleted in db --> 21
+1588224 marked deleted in db --> 21
+1588273 marked deleted in db --> 21
+1588494 marked deleted in db --> 21
+1588538 marked deleted in db --> 21
+1588543 marked deleted in db --> 21
+1588600 marked deleted in db --> 21
+1588684 marked deleted in db --> 21
+1588713 marked deleted in db --> 21
+1588773 marked deleted in db --> 21
+1588794 marked deleted in db --> 21
+1588796 marked deleted in db --> 21
+1588800 marked deleted in db --> 21
+1588817 marked deleted in db --> 21
+1588869 marked deleted in db --> 21
+1588906 marked deleted in db --> 21
+1589036 marked deleted in db --> 21
+1589099 marked deleted in db --> 21
+1589239 marked deleted in db --> 21
+1589312 marked deleted in db --> 21
+1589338 marked deleted in db --> 21
+1589410 marked deleted in db --> 21
+1589439 marked deleted in db --> 21
+1589568 marked deleted in db --> 21
+1589638 marked deleted in db --> 21
+1589651 marked deleted in db --> 21
+1589653 marked deleted in db --> 21
+1589705 marked deleted in db --> 21
+1589715 marked deleted in db --> 21
+1589725 marked deleted in db --> 21
+1589797 marked deleted in db --> 21
+1589830 marked deleted in db --> 21
+1589854 marked deleted in db --> 21
+1589919 marked deleted in db --> 21
+1589927 marked deleted in db --> 21
+1589933 marked deleted in db --> 21
+1590022 marked deleted in db --> 21
+1590104 marked deleted in db --> 21
+1590118 marked deleted in db --> 21
+1590150 marked deleted in db --> 21
+1590157 marked deleted in db --> 21
+1590159 marked deleted in db --> 21
+1590197 marked deleted in db --> 21
+1590204 marked deleted in db --> 21
+1590214 marked deleted in db --> 21
+1590222 marked deleted in db --> 21
+1590277 marked deleted in db --> 21
+1590327 marked deleted in db --> 21
+1590348 marked deleted in db --> 21
+1590387 marked deleted in db --> 21
+1590394 marked deleted in db --> 21
+1590409 marked deleted in db --> 21
+1590460 marked deleted in db --> 21
+1590464 marked deleted in db --> 21
+1590467 marked deleted in db --> 21
+1590477 marked deleted in db --> 21
+1590484 marked deleted in db --> 21
+1590560 marked deleted in db --> 21
+1590604 marked deleted in db --> 21
+1590609 marked deleted in db --> 21
+1590652 marked deleted in db --> 21
+1590683 marked deleted in db --> 21
+1590803 marked deleted in db --> 21
+1590851 marked deleted in db --> 21
+1590866 marked deleted in db --> 21
+1590872 marked deleted in db --> 21
+1590876 marked deleted in db --> 21
+1590878 marked deleted in db --> 21
+1590881 marked deleted in db --> 21
+1590938 marked deleted in db --> 21
+1590988 marked deleted in db --> 21
+1590997 marked deleted in db --> 21
+1590999 marked deleted in db --> 21
+1591011 marked deleted in db --> 21
+1591015 marked deleted in db --> 21
+1591098 marked deleted in db --> 21
+1591120 marked deleted in db --> 21
+1591132 marked deleted in db --> 21
+1591193 marked deleted in db --> 21
+1591200 marked deleted in db --> 21
+1591203 marked deleted in db --> 21
+1591204 marked deleted in db --> 21
+1591209 marked deleted in db --> 21
+1591213 marked deleted in db --> 21
+1591215 marked deleted in db --> 21
+1591228 marked deleted in db --> 21
+1591230 marked deleted in db --> 21
+1591234 marked deleted in db --> 21
+1591235 marked deleted in db --> 21
+1591236 marked deleted in db --> 21
+1591239 marked deleted in db --> 21
+1591243 marked deleted in db --> 21
+1591245 marked deleted in db --> 21
+1591308 marked deleted in db --> 21
+1591338 marked deleted in db --> 21
+1591348 marked deleted in db --> 21
+1591423 marked deleted in db --> 21
+1591430 marked deleted in db --> 21
+1591433 marked deleted in db --> 21
+1591446 marked deleted in db --> 21
+1591500 marked deleted in db --> 21
+1591502 marked deleted in db --> 21
+1591523 marked deleted in db --> 21
+1591549 marked deleted in db --> 21
+1591567 marked deleted in db --> 21
+1591568 marked deleted in db --> 21
+1591583 marked deleted in db --> 21
+1591591 marked deleted in db --> 21
+1591622 marked deleted in db --> 21
+1591643 marked deleted in db --> 21
+1591689 marked deleted in db --> 21
+1591710 marked deleted in db --> 21
+1591717 marked deleted in db --> 21
+1591791 marked deleted in db --> 21
+1591902 marked deleted in db --> 21
+1591930 marked deleted in db --> 21
+1591957 marked deleted in db --> 21
+1591962 marked deleted in db --> 21
+1591996 marked deleted in db --> 21
+1592056 marked deleted in db --> 21
+1592068 marked deleted in db --> 21
+1592088 marked deleted in db --> 21
+1592117 marked deleted in db --> 21
+1592138 marked deleted in db --> 21
+1592140 marked deleted in db --> 21
+1592144 marked deleted in db --> 21
+1592146 marked deleted in db --> 21
+1592151 marked deleted in db --> 21
+1592154 marked deleted in db --> 21
+1592203 marked deleted in db --> 21
+1592212 marked deleted in db --> 21
+1592223 marked deleted in db --> 21
+1592224 marked deleted in db --> 21
+1592253 marked deleted in db --> 21
+1592281 marked deleted in db --> 21
+1592282 marked deleted in db --> 21
+1592297 marked deleted in db --> 21
+1592321 marked deleted in db --> 21
+1592339 marked deleted in db --> 21
+1592347 marked deleted in db --> 21
+1592350 marked deleted in db --> 21
+1592352 marked deleted in db --> 21
+1592359 marked deleted in db --> 21
+1592364 marked deleted in db --> 21
+1592368 marked deleted in db --> 21
+1592373 marked deleted in db --> 21
+1592376 marked deleted in db --> 21
+1592380 marked deleted in db --> 21
+1592385 marked deleted in db --> 21
+1592386 marked deleted in db --> 21
+1592387 marked deleted in db --> 21
+1592388 marked deleted in db --> 21
+1592400 marked deleted in db --> 21
+1592419 marked deleted in db --> 21
+1592424 marked deleted in db --> 21
+1592427 marked deleted in db --> 21
+1592440 marked deleted in db --> 21
+1592462 marked deleted in db --> 21
+1592464 marked deleted in db --> 21
+1592465 marked deleted in db --> 21
+1592466 marked deleted in db --> 21
+1592467 marked deleted in db --> 21
+1592468 marked deleted in db --> 21
+1592469 marked deleted in db --> 21
+1592480 marked deleted in db --> 21
+1592484 marked deleted in db --> 21
+1592505 marked deleted in db --> 21
+1592514 marked deleted in db --> 21
+1592521 marked deleted in db --> 21
+1592523 marked deleted in db --> 21
+1592557 marked deleted in db --> 21
+1592564 marked deleted in db --> 21
+1592565 marked deleted in db --> 21
+1592567 marked deleted in db --> 21
+1592575 marked deleted in db --> 21
+1592596 marked deleted in db --> 21
+1592605 marked deleted in db --> 21
+1592622 marked deleted in db --> 21
+1592625 marked deleted in db --> 21
+1592626 marked deleted in db --> 21
+1592765 marked deleted in db --> 21
+1592768 marked deleted in db --> 21
+1592774 marked deleted in db --> 21
+1592775 marked deleted in db --> 21
+1592913 marked deleted in db --> 21
+1592936 marked deleted in db --> 21
+1592951 marked deleted in db --> 21
+1592964 marked deleted in db --> 21
+1592969 marked deleted in db --> 21
+1592971 marked deleted in db --> 21
+1592974 marked deleted in db --> 21
+1592978 marked deleted in db --> 21
+1593001 marked deleted in db --> 21
+1593002 marked deleted in db --> 21
+1593025 marked deleted in db --> 21
+1593026 marked deleted in db --> 21
+1593067 marked deleted in db --> 21
+1593086 marked deleted in db --> 21
+1593087 marked deleted in db --> 21
+1593094 marked deleted in db --> 21
+1593119 marked deleted in db --> 21
+1593160 marked deleted in db --> 21
+1593172 marked deleted in db --> 21
+1593192 marked deleted in db --> 21
+1593193 marked deleted in db --> 21
+1593223 marked deleted in db --> 21
+1593229 marked deleted in db --> 21
+1593235 marked deleted in db --> 21
+1593251 marked deleted in db --> 21
+1593278 marked deleted in db --> 21
+1593281 marked deleted in db --> 21
+1593324 marked deleted in db --> 21
+1593329 marked deleted in db --> 21
+1593333 marked deleted in db --> 21
+1593392 marked deleted in db --> 21
+1593408 marked deleted in db --> 21
+1593421 marked deleted in db --> 21
+1593446 marked deleted in db --> 21
+1593468 marked deleted in db --> 21
+1593485 marked deleted in db --> 21
+1593496 marked deleted in db --> 21
+1593500 marked deleted in db --> 21
+1593516 marked deleted in db --> 21
+1593519 marked deleted in db --> 21
+1593524 marked deleted in db --> 21
+1593527 marked deleted in db --> 21
+1593528 marked deleted in db --> 21
+1593550 marked deleted in db --> 21
+1593552 marked deleted in db --> 21
+1593561 marked deleted in db --> 21
+1593569 marked deleted in db --> 21
+1593572 marked deleted in db --> 21
+1593576 marked deleted in db --> 21
+1593579 marked deleted in db --> 21
+1593589 marked deleted in db --> 21
+1593590 marked deleted in db --> 21
+1593593 marked deleted in db --> 21
+1593594 marked deleted in db --> 21
+1593603 marked deleted in db --> 21
+1593633 marked deleted in db --> 21
+1593634 marked deleted in db --> 21
+1593665 marked deleted in db --> 21
+1593686 marked deleted in db --> 21
+1593691 marked deleted in db --> 21
+1593709 marked deleted in db --> 21
+1593713 marked deleted in db --> 21
+1593721 marked deleted in db --> 21
+1593725 marked deleted in db --> 21
+1593734 marked deleted in db --> 21
+1593735 marked deleted in db --> 21
+1593776 marked deleted in db --> 21
+1593783 marked deleted in db --> 21
+1593795 marked deleted in db --> 21
+1593812 marked deleted in db --> 21
+1593814 marked deleted in db --> 21
+1593825 marked deleted in db --> 21
+1593836 marked deleted in db --> 21
+1593838 marked deleted in db --> 21
+1593843 marked deleted in db --> 21
+1593858 marked deleted in db --> 21
+1593863 marked deleted in db --> 21
+1593868 marked deleted in db --> 21
+1593879 marked deleted in db --> 21
+1594181 marked deleted in db --> 21
+1594182 marked deleted in db --> 21
+1594257 marked deleted in db --> 21
+1594338 marked deleted in db --> 21
+1594344 marked deleted in db --> 21
+1594346 marked deleted in db --> 21
+1594350 marked deleted in db --> 21
+1594352 marked deleted in db --> 21
+1908 marked deleted in db --> 21
+1924 marked deleted in db --> 21
+1925 marked deleted in db --> 21
+1941 marked deleted in db --> 21
+1951 marked deleted in db --> 21
+211 marked deleted in db --> 21
+220028 marked deleted in db --> 21
+220051 marked deleted in db --> 21
+220083 marked deleted in db --> 21
+220152 marked deleted in db --> 21
+220203 marked deleted in db --> 21
+220254 marked deleted in db --> 21
+220393 marked deleted in db --> 21
+220586 marked deleted in db --> 21
+220754 marked deleted in db --> 21
+220756 marked deleted in db --> 21
+220834 marked deleted in db --> 21
+221058 marked deleted in db --> 21
+221524 marked deleted in db --> 21
+2224 marked deleted in db --> 21
+230110 marked deleted in db --> 21
+234 marked deleted in db --> 21
+253 marked deleted in db --> 21
+2532 marked deleted in db --> 21
+2580 marked deleted in db --> 21
+265017 marked deleted in db --> 21
+265018 marked deleted in db --> 21
+265041 marked deleted in db --> 21
+265092 marked deleted in db --> 21
+265313 marked deleted in db --> 21
+265315 marked deleted in db --> 21
+265374 marked deleted in db --> 21
+265451 marked deleted in db --> 21
+265460 marked deleted in db --> 21
+265514 marked deleted in db --> 21
+265631 marked deleted in db --> 21
+265683 marked deleted in db --> 21
+2662 marked deleted in db --> 21
+27 marked deleted in db --> 21
+276320 marked deleted in db --> 21
+2777 marked deleted in db --> 21
+2792 marked deleted in db --> 21
+2880 marked deleted in db --> 21
+2964 marked deleted in db --> 21
+307 marked deleted in db --> 21
+3074 marked deleted in db --> 21
+3090 marked deleted in db --> 21
+3154 marked deleted in db --> 21
+3163 marked deleted in db --> 21
+3172 marked deleted in db --> 21
+3258 marked deleted in db --> 21
+3264 marked deleted in db --> 21
+3318 marked deleted in db --> 21
+334 marked deleted in db --> 21
+3442 marked deleted in db --> 21
+3460 marked deleted in db --> 21
+3639 marked deleted in db --> 21
+3701 marked deleted in db --> 21
+3721 marked deleted in db --> 21
+3815 marked deleted in db --> 21
+3857 marked deleted in db --> 21
+3940 marked deleted in db --> 21
+4185 marked deleted in db --> 21
+44 marked deleted in db --> 21
+441 marked deleted in db --> 21
+4423 marked deleted in db --> 21
+4554 marked deleted in db --> 21
+4589 marked deleted in db --> 21
+4597 marked deleted in db --> 21
+4620 marked deleted in db --> 21
+4646 marked deleted in db --> 21
+4675 marked deleted in db --> 21
+469 marked deleted in db --> 21
+4775 marked deleted in db --> 21
+4870 marked deleted in db --> 21
+489 marked deleted in db --> 21
+4920 marked deleted in db --> 21
+4994 marked deleted in db --> 21
+5040 marked deleted in db --> 21
+5158 marked deleted in db --> 21
+5245 marked deleted in db --> 21
+5305 marked deleted in db --> 21
+5323 marked deleted in db --> 21
+54090 marked deleted in db --> 21
+5448 marked deleted in db --> 21
+54559 marked deleted in db --> 21
+54572 marked deleted in db --> 21
+55021 marked deleted in db --> 21
+55167 marked deleted in db --> 21
+55253 marked deleted in db --> 21
+5528 marked deleted in db --> 21
+5556 marked deleted in db --> 21
+55606 marked deleted in db --> 21
+5566 marked deleted in db --> 21
+55706 marked deleted in db --> 21
+5606 marked deleted in db --> 21
+56144 marked deleted in db --> 21
+56209 marked deleted in db --> 21
+56214 marked deleted in db --> 21
+56226 marked deleted in db --> 21
+56363 marked deleted in db --> 21
+5741 marked deleted in db --> 21
+5831 marked deleted in db --> 21
+588 marked deleted in db --> 21
+5884 marked deleted in db --> 21
+5919 marked deleted in db --> 21
+5947 marked deleted in db --> 21
+612 marked deleted in db --> 21
+637 marked deleted in db --> 21
+664 marked deleted in db --> 21
+761 marked deleted in db --> 21
+794 marked deleted in db --> 21
+808 marked deleted in db --> 21
+8459 marked deleted in db --> 21
+8461 marked deleted in db --> 21
+8469 marked deleted in db --> 21
+850 marked deleted in db --> 21
+8532 marked deleted in db --> 21
+8573 marked deleted in db --> 21
+8588 marked deleted in db --> 21
+8698 marked deleted in db --> 21
+8762 marked deleted in db --> 21
+8960 marked deleted in db --> 21
+8964 marked deleted in db --> 21
+8982 marked deleted in db --> 21
+8990 marked deleted in db --> 21
+8992 marked deleted in db --> 21
+9003 marked deleted in db --> 21
+9075 marked deleted in db --> 21
+912 marked deleted in db --> 21
+9144 marked deleted in db --> 21
+9237 marked deleted in db --> 21
+9248 marked deleted in db --> 21
+9293 marked deleted in db --> 21
+9321 marked deleted in db --> 21
+9327 marked deleted in db --> 21
+9335 marked deleted in db --> 21
+9345 marked deleted in db --> 21
+9352 marked deleted in db --> 21
+9362 marked deleted in db --> 21
+9371 marked deleted in db --> 21
+9381 marked deleted in db --> 21
+9410 marked deleted in db --> 21
+9422 marked deleted in db --> 21
+9432 marked deleted in db --> 21
+9483 marked deleted in db --> 21
+95 marked deleted in db --> 21
+9527 marked deleted in db --> 21
+9574 marked deleted in db --> 21
+9577 marked deleted in db --> 21
+9581 marked deleted in db --> 21
+9667 marked deleted in db --> 21
+9671 marked deleted in db --> 21
+9707 marked deleted in db --> 21
+9731 marked deleted in db --> 21
+9737 marked deleted in db --> 21
+9797 marked deleted in db --> 21
+9887 marked deleted in db --> 21
+989 marked deleted in db --> 21
+9965 marked deleted in db --> 21
+9981 marked deleted in db --> 21
+--Service is stopped at 1/23/2025 1:34:16 PM
+--Service is started at 1/23/2025 2:58:53 PM
+--Service is started at 1/23/2025 3:37:54 PM
+--Service is started at 1/23/2025 3:47:44 PM
+MACHINE : 172.16.53.9 : NOT CONNECTED
+--Service is stopped at 1/23/2025 3:48:10 PM
+--Service is started at 1/23/2025 3:50:38 PM
+MACHINE: 172.16.53.9, EMP NO: 1592521, TIME: 1/23/2025 3:45:00 PM
+MACHINE: 172.16.53.9, EMP NO: 1588494, TIME: 1/23/2025 3:49:47 PM
+Successfully inserted 2 records for MACHINE: 172.16.53.9
+--Service is stopped at 1/23/2025 3:53:40 PM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_27_2025.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_27_2025.txt
new file mode 100644
index 0000000..694be1b
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_27_2025.txt
@@ -0,0 +1,457 @@
+--Service is started at 1/27/2025 10:25:08 AM
+MACHINE: 10.0.0.5, EMP NO: 11825, TIME: 1/24/2025 1:59:30 PM
+MACHINE: 10.0.0.5, EMP NO: 12368, TIME: 1/24/2025 3:18:52 PM
+MACHINE: 10.0.0.5, EMP NO: 55300, TIME: 1/24/2025 4:16:14 PM
+MACHINE: 10.0.0.5, EMP NO: 1593306, TIME: 1/24/2025 5:00:53 PM
+MACHINE: 10.0.0.5, EMP NO: 1593308, TIME: 1/24/2025 5:01:20 PM
+MACHINE: 10.0.0.5, EMP NO: 127, TIME: 1/24/2025 5:03:29 PM
+MACHINE: 10.0.0.5, EMP NO: 5614, TIME: 1/24/2025 5:03:42 PM
+MACHINE: 10.0.0.5, EMP NO: 11475, TIME: 1/24/2025 5:03:56 PM
+MACHINE: 10.0.0.5, EMP NO: 11882, TIME: 1/24/2025 5:04:19 PM
+MACHINE: 10.0.0.5, EMP NO: 2106, TIME: 1/24/2025 5:04:25 PM
+MACHINE: 10.0.0.5, EMP NO: 5754, TIME: 1/24/2025 5:04:31 PM
+MACHINE: 10.0.0.5, EMP NO: 373, TIME: 1/24/2025 5:04:37 PM
+MACHINE: 10.0.0.5, EMP NO: 11974, TIME: 1/24/2025 5:04:48 PM
+MACHINE: 10.0.0.5, EMP NO: 149, TIME: 1/24/2025 5:06:15 PM
+MACHINE: 10.0.0.5, EMP NO: 9691, TIME: 1/24/2025 5:06:21 PM
+MACHINE: 10.0.0.5, EMP NO: 2761, TIME: 1/24/2025 5:06:41 PM
+MACHINE: 10.0.0.5, EMP NO: 981, TIME: 1/24/2025 5:07:12 PM
+MACHINE: 10.0.0.5, EMP NO: 3146, TIME: 1/24/2025 5:07:19 PM
+MACHINE: 10.0.0.5, EMP NO: 9532, TIME: 1/24/2025 5:07:24 PM
+MACHINE: 10.0.0.5, EMP NO: 1951, TIME: 1/24/2025 5:07:32 PM
+MACHINE: 10.0.0.5, EMP NO: 1434, TIME: 1/24/2025 5:07:49 PM
+MACHINE: 10.0.0.5, EMP NO: 11977, TIME: 1/24/2025 5:08:12 PM
+MACHINE: 10.0.0.5, EMP NO: 2439, TIME: 1/24/2025 5:08:19 PM
+MACHINE: 10.0.0.5, EMP NO: 159, TIME: 1/24/2025 5:11:34 PM
+MACHINE: 10.0.0.5, EMP NO: 12054, TIME: 1/24/2025 5:11:42 PM
+MACHINE: 10.0.0.5, EMP NO: 4811, TIME: 1/24/2025 5:11:55 PM
+MACHINE: 10.0.0.5, EMP NO: 872, TIME: 1/24/2025 5:12:09 PM
+MACHINE: 10.0.0.5, EMP NO: 27, TIME: 1/24/2025 5:12:15 PM
+MACHINE: 10.0.0.5, EMP NO: 3094, TIME: 1/24/2025 5:13:18 PM
+MACHINE: 10.0.0.5, EMP NO: 2105, TIME: 1/24/2025 5:13:30 PM
+MACHINE: 10.0.0.5, EMP NO: 672, TIME: 1/24/2025 5:19:59 PM
+MACHINE: 10.0.0.5, EMP NO: 419, TIME: 1/24/2025 5:20:10 PM
+MACHINE: 10.0.0.5, EMP NO: 825, TIME: 1/24/2025 5:20:17 PM
+MACHINE: 10.0.0.5, EMP NO: 12314, TIME: 1/24/2025 5:20:25 PM
+MACHINE: 10.0.0.5, EMP NO: 4047, TIME: 1/24/2025 5:35:04 PM
+MACHINE: 10.0.0.5, EMP NO: 12223, TIME: 1/24/2025 5:39:59 PM
+MACHINE: 10.0.0.5, EMP NO: 1593374, TIME: 1/24/2025 6:13:21 PM
+MACHINE: 10.0.0.5, EMP NO: 1592082, TIME: 1/24/2025 6:14:04 PM
+MACHINE: 10.0.0.5, EMP NO: 1592111, TIME: 1/24/2025 6:23:16 PM
+MACHINE: 10.0.0.5, EMP NO: 1593207, TIME: 1/24/2025 6:24:45 PM
+MACHINE: 10.0.0.5, EMP NO: 9661, TIME: 1/24/2025 6:30:55 PM
+MACHINE: 10.0.0.5, EMP NO: 12171, TIME: 1/24/2025 6:49:47 PM
+MACHINE: 10.0.0.5, EMP NO: 12408, TIME: 1/24/2025 6:49:59 PM
+MACHINE: 10.0.0.5, EMP NO: 11455, TIME: 1/24/2025 6:50:05 PM
+MACHINE: 10.0.0.5, EMP NO: 12122, TIME: 1/24/2025 6:50:11 PM
+MACHINE: 10.0.0.5, EMP NO: 11028, TIME: 1/24/2025 6:50:20 PM
+MACHINE: 10.0.0.5, EMP NO: 11015, TIME: 1/24/2025 6:50:26 PM
+MACHINE: 10.0.0.5, EMP NO: 5189, TIME: 1/24/2025 6:50:37 PM
+MACHINE: 10.0.0.5, EMP NO: 54541, TIME: 1/24/2025 7:00:15 PM
+MACHINE: 10.0.0.5, EMP NO: 5553, TIME: 1/24/2025 7:00:24 PM
+MACHINE: 10.0.0.5, EMP NO: 3812, TIME: 1/24/2025 7:00:41 PM
+MACHINE: 10.0.0.5, EMP NO: 56482, TIME: 1/24/2025 7:00:48 PM
+MACHINE: 10.0.0.5, EMP NO: 56062, TIME: 1/24/2025 7:01:05 PM
+MACHINE: 10.0.0.5, EMP NO: 3104, TIME: 1/24/2025 7:01:33 PM
+MACHINE: 10.0.0.5, EMP NO: 55318, TIME: 1/24/2025 7:01:41 PM
+MACHINE: 10.0.0.5, EMP NO: 55423, TIME: 1/24/2025 7:01:49 PM
+MACHINE: 10.0.0.5, EMP NO: 12480, TIME: 1/24/2025 7:02:34 PM
+MACHINE: 10.0.0.5, EMP NO: 11945, TIME: 1/24/2025 7:03:18 PM
+MACHINE: 10.0.0.5, EMP NO: 12494, TIME: 1/24/2025 7:03:26 PM
+MACHINE: 10.0.0.5, EMP NO: 11031, TIME: 1/24/2025 7:03:41 PM
+MACHINE: 10.0.0.5, EMP NO: 10319, TIME: 1/24/2025 7:04:01 PM
+MACHINE: 10.0.0.5, EMP NO: 12015, TIME: 1/24/2025 7:08:52 PM
+MACHINE: 10.0.0.5, EMP NO: 9974, TIME: 1/24/2025 7:09:02 PM
+MACHINE: 10.0.0.5, EMP NO: 12014, TIME: 1/24/2025 7:09:27 PM
+MACHINE: 10.0.0.5, EMP NO: 11948, TIME: 1/24/2025 7:10:44 PM
+MACHINE: 10.0.0.5, EMP NO: 10534, TIME: 1/24/2025 7:10:59 PM
+MACHINE: 10.0.0.5, EMP NO: 55304, TIME: 1/24/2025 7:12:23 PM
+MACHINE: 10.0.0.5, EMP NO: 3058, TIME: 1/24/2025 7:12:30 PM
+MACHINE: 10.0.0.5, EMP NO: 3059, TIME: 1/24/2025 7:12:43 PM
+MACHINE: 10.0.0.5, EMP NO: 53984, TIME: 1/24/2025 7:12:51 PM
+MACHINE: 10.0.0.5, EMP NO: 54935, TIME: 1/24/2025 7:12:57 PM
+MACHINE: 10.0.0.5, EMP NO: 55681, TIME: 1/24/2025 7:13:32 PM
+MACHINE: 10.0.0.5, EMP NO: 10673, TIME: 1/24/2025 7:17:02 PM
+MACHINE: 10.0.0.5, EMP NO: 11405, TIME: 1/24/2025 7:22:59 PM
+MACHINE: 10.0.0.5, EMP NO: 12409, TIME: 1/24/2025 7:41:27 PM
+MACHINE: 10.0.0.5, EMP NO: 2275, TIME: 1/24/2025 7:51:53 PM
+MACHINE: 10.0.0.5, EMP NO: 10504, TIME: 1/24/2025 7:54:17 PM
+MACHINE: 10.0.0.5, EMP NO: 9738, TIME: 1/24/2025 7:57:52 PM
+MACHINE: 10.0.0.5, EMP NO: 1592077, TIME: 1/24/2025 8:00:02 PM
+MACHINE: 10.0.0.5, EMP NO: 1593380, TIME: 1/24/2025 8:01:51 PM
+MACHINE: 10.0.0.5, EMP NO: 12441, TIME: 1/24/2025 8:02:40 PM
+MACHINE: 10.0.0.5, EMP NO: 1593363, TIME: 1/24/2025 8:04:11 PM
+MACHINE: 10.0.0.5, EMP NO: 1591945, TIME: 1/24/2025 8:04:25 PM
+MACHINE: 10.0.0.5, EMP NO: 1592535, TIME: 1/24/2025 8:04:30 PM
+MACHINE: 10.0.0.5, EMP NO: 1593604, TIME: 1/24/2025 8:04:35 PM
+MACHINE: 10.0.0.5, EMP NO: 10531, TIME: 1/24/2025 8:04:44 PM
+MACHINE: 10.0.0.5, EMP NO: 1592191, TIME: 1/24/2025 8:05:42 PM
+MACHINE: 10.0.0.5, EMP NO: 1593369, TIME: 1/24/2025 8:07:05 PM
+MACHINE: 10.0.0.5, EMP NO: 12069, TIME: 1/24/2025 8:12:55 PM
+MACHINE: 10.0.0.5, EMP NO: 12531, TIME: 1/24/2025 8:13:21 PM
+MACHINE: 10.0.0.5, EMP NO: 949, TIME: 1/24/2025 8:36:50 PM
+MACHINE: 10.0.0.5, EMP NO: 56472, TIME: 1/24/2025 8:37:00 PM
+MACHINE: 10.0.0.5, EMP NO: 10580, TIME: 1/24/2025 8:40:17 PM
+MACHINE: 10.0.0.5, EMP NO: 54573, TIME: 1/24/2025 8:40:27 PM
+MACHINE: 10.0.0.5, EMP NO: 56463, TIME: 1/24/2025 8:52:48 PM
+MACHINE: 10.0.0.5, EMP NO: 12560, TIME: 1/24/2025 10:05:23 PM
+MACHINE: 10.0.0.5, EMP NO: 11825, TIME: 1/24/2025 10:11:56 PM
+MACHINE: 10.0.0.5, EMP NO: 12268, TIME: 1/24/2025 10:37:43 PM
+MACHINE: 10.0.0.5, EMP NO: 2275, TIME: 1/25/2025 6:55:38 AM
+MACHINE: 10.0.0.5, EMP NO: 9974, TIME: 1/25/2025 6:57:16 AM
+MACHINE: 10.0.0.5, EMP NO: 12015, TIME: 1/25/2025 6:57:40 AM
+MACHINE: 10.0.0.5, EMP NO: 10673, TIME: 1/25/2025 6:58:23 AM
+MACHINE: 10.0.0.5, EMP NO: 11948, TIME: 1/25/2025 6:58:42 AM
+MACHINE: 10.0.0.5, EMP NO: 10534, TIME: 1/25/2025 6:59:00 AM
+MACHINE: 10.0.0.5, EMP NO: 12014, TIME: 1/25/2025 6:59:06 AM
+MACHINE: 10.0.0.5, EMP NO: 12531, TIME: 1/25/2025 6:59:15 AM
+MACHINE: 10.0.0.5, EMP NO: 11455, TIME: 1/25/2025 7:04:13 AM
+MACHINE: 10.0.0.5, EMP NO: 12494, TIME: 1/25/2025 7:04:26 AM
+MACHINE: 10.0.0.5, EMP NO: 10319, TIME: 1/25/2025 7:04:47 AM
+MACHINE: 10.0.0.5, EMP NO: 11945, TIME: 1/25/2025 7:04:57 AM
+MACHINE: 10.0.0.5, EMP NO: 11031, TIME: 1/25/2025 7:06:15 AM
+MACHINE: 10.0.0.5, EMP NO: 12171, TIME: 1/25/2025 7:07:10 AM
+MACHINE: 10.0.0.5, EMP NO: 12408, TIME: 1/25/2025 7:08:05 AM
+MACHINE: 10.0.0.5, EMP NO: 11028, TIME: 1/25/2025 7:09:00 AM
+MACHINE: 10.0.0.5, EMP NO: 1592111, TIME: 1/25/2025 7:11:47 AM
+MACHINE: 10.0.0.5, EMP NO: 11015, TIME: 1/25/2025 7:16:04 AM
+MACHINE: 10.0.0.5, EMP NO: 5189, TIME: 1/25/2025 7:16:39 AM
+MACHINE: 10.0.0.5, EMP NO: 12122, TIME: 1/25/2025 7:18:32 AM
+MACHINE: 10.0.0.5, EMP NO: 12268, TIME: 1/25/2025 7:24:53 AM
+MACHINE: 10.0.0.5, EMP NO: 56463, TIME: 1/25/2025 7:25:19 AM
+MACHINE: 10.0.0.5, EMP NO: 10531, TIME: 1/25/2025 7:39:47 AM
+MACHINE: 10.0.0.5, EMP NO: 1593306, TIME: 1/25/2025 7:53:14 AM
+MACHINE: 10.0.0.5, EMP NO: 1593308, TIME: 1/25/2025 7:53:41 AM
+MACHINE: 10.0.0.5, EMP NO: 1593363, TIME: 1/25/2025 7:58:57 AM
+MACHINE: 10.0.0.5, EMP NO: 1592535, TIME: 1/25/2025 7:59:17 AM
+MACHINE: 10.0.0.5, EMP NO: 1593604, TIME: 1/25/2025 7:59:22 AM
+MACHINE: 10.0.0.5, EMP NO: 1591945, TIME: 1/25/2025 7:59:28 AM
+MACHINE: 10.0.0.5, EMP NO: 1592077, TIME: 1/25/2025 8:00:07 AM
+MACHINE: 10.0.0.5, EMP NO: 1592191, TIME: 1/25/2025 8:01:01 AM
+MACHINE: 10.0.0.5, EMP NO: 12069, TIME: 1/25/2025 8:13:14 AM
+MACHINE: 10.0.0.5, EMP NO: 10504, TIME: 1/25/2025 8:18:34 AM
+MACHINE: 10.0.0.5, EMP NO: 10580, TIME: 1/25/2025 8:18:50 AM
+MACHINE: 10.0.0.5, EMP NO: 3104, TIME: 1/25/2025 8:20:08 AM
+MACHINE: 10.0.0.5, EMP NO: 54541, TIME: 1/25/2025 8:21:54 AM
+MACHINE: 10.0.0.5, EMP NO: 5553, TIME: 1/25/2025 8:22:07 AM
+MACHINE: 10.0.0.5, EMP NO: 55681, TIME: 1/25/2025 8:22:56 AM
+MACHINE: 10.0.0.5, EMP NO: 3812, TIME: 1/25/2025 8:26:05 AM
+MACHINE: 10.0.0.5, EMP NO: 56482, TIME: 1/25/2025 8:27:44 AM
+MACHINE: 10.0.0.5, EMP NO: 55423, TIME: 1/25/2025 8:28:53 AM
+MACHINE: 10.0.0.5, EMP NO: 56062, TIME: 1/25/2025 8:39:29 AM
+MACHINE: 10.0.0.5, EMP NO: 55304, TIME: 1/25/2025 8:39:36 AM
+MACHINE: 10.0.0.5, EMP NO: 55318, TIME: 1/25/2025 8:39:43 AM
+MACHINE: 10.0.0.5, EMP NO: 3058, TIME: 1/25/2025 8:39:47 AM
+MACHINE: 10.0.0.5, EMP NO: 54935, TIME: 1/25/2025 8:39:54 AM
+MACHINE: 10.0.0.5, EMP NO: 3059, TIME: 1/25/2025 8:40:02 AM
+MACHINE: 10.0.0.5, EMP NO: 53984, TIME: 1/25/2025 8:40:08 AM
+MACHINE: 10.0.0.5, EMP NO: 12223, TIME: 1/25/2025 8:40:14 AM
+MACHINE: 10.0.0.5, EMP NO: 54573, TIME: 1/25/2025 8:43:56 AM
+MACHINE: 10.0.0.5, EMP NO: 1592082, TIME: 1/25/2025 8:46:19 AM
+MACHINE: 10.0.0.5, EMP NO: 1593374, TIME: 1/25/2025 8:46:36 AM
+MACHINE: 10.0.0.5, EMP NO: 1593207, TIME: 1/25/2025 8:55:57 AM
+MACHINE: 10.0.0.5, EMP NO: 12409, TIME: 1/25/2025 8:56:11 AM
+MACHINE: 10.0.0.5, EMP NO: 8647, TIME: 1/25/2025 8:58:02 AM
+MACHINE: 10.0.0.5, EMP NO: 9691, TIME: 1/25/2025 8:58:11 AM
+MACHINE: 10.0.0.5, EMP NO: 11974, TIME: 1/25/2025 9:00:34 AM
+MACHINE: 10.0.0.5, EMP NO: 4047, TIME: 1/25/2025 9:03:45 AM
+MACHINE: 10.0.0.5, EMP NO: 56472, TIME: 1/25/2025 9:05:17 AM
+MACHINE: 10.0.0.5, EMP NO: 11405, TIME: 1/25/2025 9:05:25 AM
+MACHINE: 10.0.0.5, EMP NO: 12480, TIME: 1/25/2025 9:05:36 AM
+MACHINE: 10.0.0.5, EMP NO: 9661, TIME: 1/25/2025 9:05:44 AM
+MACHINE: 10.0.0.5, EMP NO: 949, TIME: 1/25/2025 9:05:55 AM
+MACHINE: 10.0.0.5, EMP NO: 825, TIME: 1/25/2025 9:08:12 AM
+MACHINE: 10.0.0.5, EMP NO: 12314, TIME: 1/25/2025 9:08:18 AM
+MACHINE: 10.0.0.5, EMP NO: 56573, TIME: 1/25/2025 9:08:26 AM
+MACHINE: 10.0.0.5, EMP NO: 949, TIME: 1/25/2025 9:08:32 AM
+MACHINE: 10.0.0.5, EMP NO: 27, TIME: 1/25/2025 9:12:02 AM
+MACHINE: 10.0.0.5, EMP NO: 2106, TIME: 1/25/2025 9:12:07 AM
+MACHINE: 10.0.0.5, EMP NO: 12054, TIME: 1/25/2025 9:12:13 AM
+MACHINE: 10.0.0.5, EMP NO: 5614, TIME: 1/25/2025 9:12:18 AM
+MACHINE: 10.0.0.5, EMP NO: 2105, TIME: 1/25/2025 9:12:35 AM
+MACHINE: 10.0.0.5, EMP NO: 2761, TIME: 1/25/2025 9:12:43 AM
+MACHINE: 10.0.0.5, EMP NO: 2439, TIME: 1/25/2025 9:12:48 AM
+MACHINE: 10.0.0.5, EMP NO: 9532, TIME: 1/25/2025 9:12:53 AM
+MACHINE: 10.0.0.5, EMP NO: 872, TIME: 1/25/2025 9:12:59 AM
+MACHINE: 10.0.0.5, EMP NO: 159, TIME: 1/25/2025 9:13:09 AM
+MACHINE: 10.0.0.5, EMP NO: 3094, TIME: 1/25/2025 9:13:35 AM
+MACHINE: 10.0.0.5, EMP NO: 1434, TIME: 1/25/2025 9:13:48 AM
+MACHINE: 10.0.0.5, EMP NO: 981, TIME: 1/25/2025 9:13:57 AM
+MACHINE: 10.0.0.5, EMP NO: 56149, TIME: 1/25/2025 9:14:02 AM
+MACHINE: 10.0.0.5, EMP NO: 3146, TIME: 1/25/2025 9:14:07 AM
+MACHINE: 10.0.0.5, EMP NO: 12536, TIME: 1/25/2025 9:14:13 AM
+MACHINE: 10.0.0.5, EMP NO: 10547, TIME: 1/25/2025 9:15:25 AM
+MACHINE: 10.0.0.5, EMP NO: 3647, TIME: 1/25/2025 9:16:39 AM
+MACHINE: 10.0.0.5, EMP NO: 12559, TIME: 1/25/2025 9:17:39 AM
+MACHINE: 10.0.0.5, EMP NO: 9738, TIME: 1/25/2025 9:18:02 AM
+MACHINE: 10.0.0.5, EMP NO: 1593369, TIME: 1/25/2025 10:55:14 AM
+MACHINE: 10.0.0.5, EMP NO: 1593380, TIME: 1/25/2025 10:55:23 AM
+MACHINE: 10.0.0.5, EMP NO: 12441, TIME: 1/25/2025 11:14:15 AM
+MACHINE: 10.0.0.5, EMP NO: 6494, TIME: 1/25/2025 11:32:04 AM
+MACHINE: 10.0.0.5, EMP NO: 10969, TIME: 1/25/2025 1:53:39 PM
+MACHINE: 10.0.0.5, EMP NO: 11825, TIME: 1/25/2025 1:54:44 PM
+MACHINE: 10.0.0.5, EMP NO: 12560, TIME: 1/25/2025 2:38:49 PM
+MACHINE: 10.0.0.5, EMP NO: 1592111, TIME: 1/25/2025 4:47:03 PM
+MACHINE: 10.0.0.5, EMP NO: 10504, TIME: 1/25/2025 4:49:12 PM
+MACHINE: 10.0.0.5, EMP NO: 56062, TIME: 1/25/2025 5:00:19 PM
+MACHINE: 10.0.0.5, EMP NO: 55681, TIME: 1/25/2025 5:00:26 PM
+MACHINE: 10.0.0.5, EMP NO: 9661, TIME: 1/25/2025 5:00:36 PM
+MACHINE: 10.0.0.5, EMP NO: 54541, TIME: 1/25/2025 5:00:41 PM
+MACHINE: 10.0.0.5, EMP NO: 5553, TIME: 1/25/2025 5:00:51 PM
+MACHINE: 10.0.0.5, EMP NO: 53984, TIME: 1/25/2025 5:00:58 PM
+MACHINE: 10.0.0.5, EMP NO: 54935, TIME: 1/25/2025 5:01:03 PM
+MACHINE: 10.0.0.5, EMP NO: 55304, TIME: 1/25/2025 5:01:09 PM
+MACHINE: 10.0.0.5, EMP NO: 55318, TIME: 1/25/2025 5:01:13 PM
+MACHINE: 10.0.0.5, EMP NO: 3059, TIME: 1/25/2025 5:01:19 PM
+MACHINE: 10.0.0.5, EMP NO: 9532, TIME: 1/25/2025 5:01:24 PM
+MACHINE: 10.0.0.5, EMP NO: 12314, TIME: 1/25/2025 5:01:35 PM
+MACHINE: 10.0.0.5, EMP NO: 12223, TIME: 1/25/2025 5:01:39 PM
+MACHINE: 10.0.0.5, EMP NO: 56149, TIME: 1/25/2025 5:01:47 PM
+MACHINE: 10.0.0.5, EMP NO: 5614, TIME: 1/25/2025 5:01:56 PM
+MACHINE: 10.0.0.5, EMP NO: 10580, TIME: 1/25/2025 5:02:03 PM
+MACHINE: 10.0.0.5, EMP NO: 3146, TIME: 1/25/2025 5:02:11 PM
+MACHINE: 10.0.0.5, EMP NO: 1593306, TIME: 1/25/2025 5:02:15 PM
+MACHINE: 10.0.0.5, EMP NO: 56573, TIME: 1/25/2025 5:02:27 PM
+MACHINE: 10.0.0.5, EMP NO: 12069, TIME: 1/25/2025 5:02:45 PM
+MACHINE: 10.0.0.5, EMP NO: 12559, TIME: 1/25/2025 5:02:54 PM
+MACHINE: 10.0.0.5, EMP NO: 10547, TIME: 1/25/2025 5:03:00 PM
+MACHINE: 10.0.0.5, EMP NO: 3647, TIME: 1/25/2025 5:03:06 PM
+MACHINE: 10.0.0.5, EMP NO: 3058, TIME: 1/25/2025 5:03:14 PM
+MACHINE: 10.0.0.5, EMP NO: 3812, TIME: 1/25/2025 5:04:36 PM
+MACHINE: 10.0.0.5, EMP NO: 949, TIME: 1/25/2025 5:04:41 PM
+MACHINE: 10.0.0.5, EMP NO: 55423, TIME: 1/25/2025 5:05:11 PM
+MACHINE: 10.0.0.5, EMP NO: 1593308, TIME: 1/25/2025 5:05:19 PM
+MACHINE: 10.0.0.5, EMP NO: 825, TIME: 1/25/2025 5:05:33 PM
+MACHINE: 10.0.0.5, EMP NO: 11974, TIME: 1/25/2025 5:06:29 PM
+MACHINE: 10.0.0.5, EMP NO: 5614, TIME: 1/25/2025 5:06:33 PM
+MACHINE: 10.0.0.5, EMP NO: 56482, TIME: 1/25/2025 5:07:54 PM
+MACHINE: 10.0.0.5, EMP NO: 8647, TIME: 1/25/2025 5:08:08 PM
+MACHINE: 10.0.0.5, EMP NO: 9691, TIME: 1/25/2025 5:08:52 PM
+MACHINE: 10.0.0.5, EMP NO: 3104, TIME: 1/25/2025 5:08:57 PM
+MACHINE: 10.0.0.5, EMP NO: 3094, TIME: 1/25/2025 5:14:15 PM
+MACHINE: 10.0.0.5, EMP NO: 2106, TIME: 1/25/2025 5:14:21 PM
+MACHINE: 10.0.0.5, EMP NO: 159, TIME: 1/25/2025 5:14:48 PM
+MACHINE: 10.0.0.5, EMP NO: 872, TIME: 1/25/2025 5:14:53 PM
+MACHINE: 10.0.0.5, EMP NO: 12054, TIME: 1/25/2025 5:15:03 PM
+MACHINE: 10.0.0.5, EMP NO: 2761, TIME: 1/25/2025 5:15:10 PM
+MACHINE: 10.0.0.5, EMP NO: 2439, TIME: 1/25/2025 5:15:14 PM
+MACHINE: 10.0.0.5, EMP NO: 1434, TIME: 1/25/2025 5:15:22 PM
+MACHINE: 10.0.0.5, EMP NO: 3146, TIME: 1/25/2025 5:15:27 PM
+MACHINE: 10.0.0.5, EMP NO: 27, TIME: 1/25/2025 5:15:42 PM
+MACHINE: 10.0.0.5, EMP NO: 981, TIME: 1/25/2025 5:15:53 PM
+MACHINE: 10.0.0.5, EMP NO: 2105, TIME: 1/25/2025 5:16:06 PM
+MACHINE: 10.0.0.5, EMP NO: 1593207, TIME: 1/25/2025 6:01:31 PM
+MACHINE: 10.0.0.5, EMP NO: 1592082, TIME: 1/25/2025 6:02:36 PM
+MACHINE: 10.0.0.5, EMP NO: 4047, TIME: 1/25/2025 6:08:52 PM
+MACHINE: 10.0.0.5, EMP NO: 11405, TIME: 1/25/2025 6:44:38 PM
+MACHINE: 10.0.0.5, EMP NO: 12171, TIME: 1/25/2025 6:46:10 PM
+MACHINE: 10.0.0.5, EMP NO: 12122, TIME: 1/25/2025 6:46:17 PM
+MACHINE: 10.0.0.5, EMP NO: 11015, TIME: 1/25/2025 6:46:28 PM
+MACHINE: 10.0.0.5, EMP NO: 12408, TIME: 1/25/2025 6:46:33 PM
+MACHINE: 10.0.0.5, EMP NO: 11945, TIME: 1/25/2025 6:46:41 PM
+MACHINE: 10.0.0.5, EMP NO: 5189, TIME: 1/25/2025 6:46:56 PM
+MACHINE: 10.0.0.5, EMP NO: 11028, TIME: 1/25/2025 6:47:07 PM
+MACHINE: 10.0.0.5, EMP NO: 11455, TIME: 1/25/2025 6:59:35 PM
+MACHINE: 10.0.0.5, EMP NO: 10319, TIME: 1/25/2025 6:59:49 PM
+MACHINE: 10.0.0.5, EMP NO: 11031, TIME: 1/25/2025 7:00:19 PM
+MACHINE: 10.0.0.5, EMP NO: 12494, TIME: 1/25/2025 7:00:29 PM
+MACHINE: 10.0.0.5, EMP NO: 12480, TIME: 1/25/2025 7:00:40 PM
+MACHINE: 10.0.0.5, EMP NO: 1593374, TIME: 1/25/2025 7:03:58 PM
+MACHINE: 10.0.0.5, EMP NO: 9974, TIME: 1/25/2025 7:07:25 PM
+MACHINE: 10.0.0.5, EMP NO: 12015, TIME: 1/25/2025 7:07:34 PM
+MACHINE: 10.0.0.5, EMP NO: 12014, TIME: 1/25/2025 7:08:33 PM
+MACHINE: 10.0.0.5, EMP NO: 10534, TIME: 1/25/2025 7:08:47 PM
+MACHINE: 10.0.0.5, EMP NO: 11948, TIME: 1/25/2025 7:10:41 PM
+MACHINE: 10.0.0.5, EMP NO: 10673, TIME: 1/25/2025 7:11:33 PM
+MACHINE: 10.0.0.5, EMP NO: 12409, TIME: 1/25/2025 7:42:49 PM
+MACHINE: 10.0.0.5, EMP NO: 2275, TIME: 1/25/2025 7:47:34 PM
+MACHINE: 10.0.0.5, EMP NO: 1592535, TIME: 1/25/2025 7:59:58 PM
+MACHINE: 10.0.0.5, EMP NO: 1593380, TIME: 1/25/2025 8:00:09 PM
+MACHINE: 10.0.0.5, EMP NO: 1592077, TIME: 1/25/2025 8:01:22 PM
+MACHINE: 10.0.0.5, EMP NO: 54573, TIME: 1/25/2025 8:02:30 PM
+MACHINE: 10.0.0.5, EMP NO: 12536, TIME: 1/25/2025 8:04:21 PM
+MACHINE: 10.0.0.5, EMP NO: 12441, TIME: 1/25/2025 8:04:29 PM
+MACHINE: 10.0.0.5, EMP NO: 1593369, TIME: 1/25/2025 8:05:21 PM
+MACHINE: 10.0.0.5, EMP NO: 1593363, TIME: 1/25/2025 8:08:28 PM
+MACHINE: 10.0.0.5, EMP NO: 1593604, TIME: 1/25/2025 8:09:06 PM
+MACHINE: 10.0.0.5, EMP NO: 1591945, TIME: 1/25/2025 8:09:40 PM
+MACHINE: 10.0.0.5, EMP NO: 10531, TIME: 1/25/2025 8:13:13 PM
+MACHINE: 10.0.0.5, EMP NO: 12531, TIME: 1/25/2025 8:13:25 PM
+MACHINE: 10.0.0.5, EMP NO: 56463, TIME: 1/25/2025 8:14:40 PM
+MACHINE: 10.0.0.5, EMP NO: 56472, TIME: 1/25/2025 8:14:45 PM
+MACHINE: 10.0.0.5, EMP NO: 1592191, TIME: 1/25/2025 8:17:05 PM
+MACHINE: 10.0.0.5, EMP NO: 9738, TIME: 1/25/2025 9:08:17 PM
+MACHINE: 10.0.0.5, EMP NO: 11825, TIME: 1/25/2025 10:06:03 PM
+MACHINE: 10.0.0.5, EMP NO: 10969, TIME: 1/25/2025 10:06:14 PM
+MACHINE: 10.0.0.5, EMP NO: 12268, TIME: 1/25/2025 10:42:28 PM
+MACHINE: 10.0.0.5, EMP NO: 12560, TIME: 1/25/2025 11:13:35 PM
+MACHINE: 10.0.0.5, EMP NO: 4640, TIME: 1/26/2025 6:52:52 AM
+MACHINE: 10.0.0.5, EMP NO: 12015, TIME: 1/26/2025 6:53:00 AM
+MACHINE: 10.0.0.5, EMP NO: 10534, TIME: 1/26/2025 6:53:16 AM
+MACHINE: 10.0.0.5, EMP NO: 9974, TIME: 1/26/2025 6:53:20 AM
+MACHINE: 10.0.0.5, EMP NO: 12014, TIME: 1/26/2025 6:53:28 AM
+MACHINE: 10.0.0.5, EMP NO: 11948, TIME: 1/26/2025 6:53:35 AM
+MACHINE: 10.0.0.5, EMP NO: 10673, TIME: 1/26/2025 6:53:42 AM
+MACHINE: 10.0.0.5, EMP NO: 12531, TIME: 1/26/2025 6:53:51 AM
+MACHINE: 10.0.0.5, EMP NO: 2275, TIME: 1/26/2025 6:54:22 AM
+MACHINE: 10.0.0.5, EMP NO: 10319, TIME: 1/26/2025 7:03:00 AM
+MACHINE: 10.0.0.5, EMP NO: 11945, TIME: 1/26/2025 7:03:14 AM
+MACHINE: 10.0.0.5, EMP NO: 12171, TIME: 1/26/2025 7:03:21 AM
+MACHINE: 10.0.0.5, EMP NO: 11455, TIME: 1/26/2025 7:04:05 AM
+MACHINE: 10.0.0.5, EMP NO: 12494, TIME: 1/26/2025 7:04:10 AM
+MACHINE: 10.0.0.5, EMP NO: 11028, TIME: 1/26/2025 7:04:30 AM
+MACHINE: 10.0.0.5, EMP NO: 11031, TIME: 1/26/2025 7:05:38 AM
+MACHINE: 10.0.0.5, EMP NO: 12408, TIME: 1/26/2025 7:05:43 AM
+MACHINE: 10.0.0.5, EMP NO: 12122, TIME: 1/26/2025 7:13:48 AM
+MACHINE: 10.0.0.5, EMP NO: 11015, TIME: 1/26/2025 7:18:03 AM
+MACHINE: 10.0.0.5, EMP NO: 5189, TIME: 1/26/2025 7:18:22 AM
+MACHINE: 10.0.0.5, EMP NO: 12268, TIME: 1/26/2025 7:19:40 AM
+MACHINE: 10.0.0.5, EMP NO: 1592111, TIME: 1/26/2025 7:37:00 AM
+MACHINE: 10.0.0.5, EMP NO: 10531, TIME: 1/26/2025 7:41:44 AM
+MACHINE: 10.0.0.5, EMP NO: 12441, TIME: 1/26/2025 7:59:11 AM
+MACHINE: 10.0.0.5, EMP NO: 12536, TIME: 1/26/2025 7:59:20 AM
+MACHINE: 10.0.0.5, EMP NO: 54573, TIME: 1/26/2025 8:17:49 AM
+MACHINE: 10.0.0.5, EMP NO: 56463, TIME: 1/26/2025 8:28:28 AM
+MACHINE: 10.0.0.5, EMP NO: 1592082, TIME: 1/26/2025 8:35:29 AM
+MACHINE: 10.0.0.5, EMP NO: 1593369, TIME: 1/26/2025 8:50:34 AM
+MACHINE: 10.0.0.5, EMP NO: 1593374, TIME: 1/26/2025 8:51:24 AM
+MACHINE: 10.0.0.5, EMP NO: 1593380, TIME: 1/26/2025 8:51:42 AM
+MACHINE: 10.0.0.5, EMP NO: 4047, TIME: 1/26/2025 9:01:12 AM
+MACHINE: 10.0.0.5, EMP NO: 11405, TIME: 1/26/2025 9:03:39 AM
+MACHINE: 10.0.0.5, EMP NO: 1593207, TIME: 1/26/2025 9:04:46 AM
+MACHINE: 10.0.0.5, EMP NO: 9738, TIME: 1/26/2025 9:30:35 AM
+MACHINE: 10.0.0.5, EMP NO: 11825, TIME: 1/26/2025 9:30:41 AM
+MACHINE: 10.0.0.5, EMP NO: 12409, TIME: 1/26/2025 11:15:37 AM
+MACHINE: 10.0.0.5, EMP NO: 10969, TIME: 1/26/2025 12:07:30 PM
+MACHINE: 10.0.0.5, EMP NO: 55300, TIME: 1/26/2025 1:14:24 PM
+MACHINE: 10.0.0.5, EMP NO: 12361, TIME: 1/26/2025 3:15:16 PM
+MACHINE: 10.0.0.5, EMP NO: 12441, TIME: 1/26/2025 4:24:19 PM
+MACHINE: 10.0.0.5, EMP NO: 4047, TIME: 1/26/2025 5:08:59 PM
+MACHINE: 10.0.0.5, EMP NO: 12536, TIME: 1/26/2025 5:11:42 PM
+MACHINE: 10.0.0.5, EMP NO: 1592111, TIME: 1/26/2025 5:26:58 PM
+MACHINE: 10.0.0.5, EMP NO: 11405, TIME: 1/26/2025 5:39:25 PM
+MACHINE: 10.0.0.5, EMP NO: 1593207, TIME: 1/26/2025 6:06:34 PM
+MACHINE: 10.0.0.5, EMP NO: 1593380, TIME: 1/26/2025 6:07:48 PM
+MACHINE: 10.0.0.5, EMP NO: 1593369, TIME: 1/26/2025 6:08:05 PM
+MACHINE: 10.0.0.5, EMP NO: 1593374, TIME: 1/26/2025 6:08:39 PM
+MACHINE: 10.0.0.5, EMP NO: 12171, TIME: 1/26/2025 6:45:18 PM
+MACHINE: 10.0.0.5, EMP NO: 11028, TIME: 1/26/2025 6:45:26 PM
+MACHINE: 10.0.0.5, EMP NO: 11015, TIME: 1/26/2025 6:45:32 PM
+MACHINE: 10.0.0.5, EMP NO: 12122, TIME: 1/26/2025 6:45:41 PM
+MACHINE: 10.0.0.5, EMP NO: 12408, TIME: 1/26/2025 6:45:54 PM
+MACHINE: 10.0.0.5, EMP NO: 11945, TIME: 1/26/2025 6:46:01 PM
+MACHINE: 10.0.0.5, EMP NO: 5189, TIME: 1/26/2025 6:46:14 PM
+MACHINE: 10.0.0.5, EMP NO: 11455, TIME: 1/26/2025 7:01:19 PM
+MACHINE: 10.0.0.5, EMP NO: 10319, TIME: 1/26/2025 7:01:49 PM
+MACHINE: 10.0.0.5, EMP NO: 11031, TIME: 1/26/2025 7:01:56 PM
+MACHINE: 10.0.0.5, EMP NO: 12494, TIME: 1/26/2025 7:02:04 PM
+MACHINE: 10.0.0.5, EMP NO: 10534, TIME: 1/26/2025 7:02:42 PM
+MACHINE: 10.0.0.5, EMP NO: 12014, TIME: 1/26/2025 7:08:20 PM
+MACHINE: 10.0.0.5, EMP NO: 12015, TIME: 1/26/2025 7:09:20 PM
+MACHINE: 10.0.0.5, EMP NO: 4640, TIME: 1/26/2025 7:10:55 PM
+MACHINE: 10.0.0.5, EMP NO: 11948, TIME: 1/26/2025 7:13:15 PM
+MACHINE: 10.0.0.5, EMP NO: 9974, TIME: 1/26/2025 7:13:26 PM
+MACHINE: 10.0.0.5, EMP NO: 10673, TIME: 1/26/2025 7:20:21 PM
+MACHINE: 10.0.0.5, EMP NO: 2275, TIME: 1/26/2025 7:37:55 PM
+MACHINE: 10.0.0.5, EMP NO: 12531, TIME: 1/26/2025 7:39:02 PM
+MACHINE: 10.0.0.5, EMP NO: 12409, TIME: 1/26/2025 7:40:28 PM
+MACHINE: 10.0.0.5, EMP NO: 56463, TIME: 1/26/2025 7:41:36 PM
+MACHINE: 10.0.0.5, EMP NO: 1592082, TIME: 1/26/2025 7:44:03 PM
+MACHINE: 10.0.0.5, EMP NO: 10531, TIME: 1/26/2025 8:11:14 PM
+MACHINE: 10.0.0.5, EMP NO: 9738, TIME: 1/26/2025 8:39:20 PM
+MACHINE: 10.0.0.5, EMP NO: 11825, TIME: 1/26/2025 8:39:59 PM
+MACHINE: 10.0.0.5, EMP NO: 55300, TIME: 1/26/2025 9:19:24 PM
+MACHINE: 10.0.0.5, EMP NO: 54573, TIME: 1/26/2025 9:47:31 PM
+MACHINE: 10.0.0.5, EMP NO: 10969, TIME: 1/26/2025 10:11:20 PM
+MACHINE: 10.0.0.5, EMP NO: 12268, TIME: 1/26/2025 10:54:26 PM
+MACHINE: 10.0.0.5, EMP NO: 12361, TIME: 1/26/2025 11:17:49 PM
+MACHINE: 10.0.0.5, EMP NO: 4640, TIME: 1/27/2025 6:56:09 AM
+MACHINE: 10.0.0.5, EMP NO: 2275, TIME: 1/27/2025 6:56:22 AM
+MACHINE: 10.0.0.5, EMP NO: 12015, TIME: 1/27/2025 6:56:28 AM
+MACHINE: 10.0.0.5, EMP NO: 10534, TIME: 1/27/2025 6:56:43 AM
+MACHINE: 10.0.0.5, EMP NO: 9974, TIME: 1/27/2025 6:56:50 AM
+MACHINE: 10.0.0.5, EMP NO: 11948, TIME: 1/27/2025 6:56:57 AM
+MACHINE: 10.0.0.5, EMP NO: 12014, TIME: 1/27/2025 6:57:01 AM
+MACHINE: 10.0.0.5, EMP NO: 10673, TIME: 1/27/2025 6:57:09 AM
+MACHINE: 10.0.0.5, EMP NO: 12531, TIME: 1/27/2025 6:57:19 AM
+MACHINE: 10.0.0.5, EMP NO: 11031, TIME: 1/27/2025 7:01:44 AM
+MACHINE: 10.0.0.5, EMP NO: 10319, TIME: 1/27/2025 7:02:10 AM
+MACHINE: 10.0.0.5, EMP NO: 11455, TIME: 1/27/2025 7:02:22 AM
+MACHINE: 10.0.0.5, EMP NO: 11945, TIME: 1/27/2025 7:03:28 AM
+MACHINE: 10.0.0.5, EMP NO: 12494, TIME: 1/27/2025 7:03:43 AM
+MACHINE: 10.0.0.5, EMP NO: 12171, TIME: 1/27/2025 7:03:49 AM
+MACHINE: 10.0.0.5, EMP NO: 12408, TIME: 1/27/2025 7:04:50 AM
+MACHINE: 10.0.0.5, EMP NO: 11028, TIME: 1/27/2025 7:07:14 AM
+MACHINE: 10.0.0.5, EMP NO: 12122, TIME: 1/27/2025 7:13:03 AM
+MACHINE: 10.0.0.5, EMP NO: 5189, TIME: 1/27/2025 7:16:43 AM
+MACHINE: 10.0.0.5, EMP NO: 11015, TIME: 1/27/2025 7:17:02 AM
+MACHINE: 10.0.0.5, EMP NO: 10531, TIME: 1/27/2025 7:42:21 AM
+MACHINE: 10.0.0.5, EMP NO: 56472, TIME: 1/27/2025 7:48:11 AM
+MACHINE: 10.0.0.5, EMP NO: 56463, TIME: 1/27/2025 7:48:39 AM
+MACHINE: 10.0.0.5, EMP NO: 1592111, TIME: 1/27/2025 7:48:55 AM
+MACHINE: 10.0.0.5, EMP NO: 1593308, TIME: 1/27/2025 7:49:34 AM
+MACHINE: 10.0.0.5, EMP NO: 12268, TIME: 1/27/2025 7:53:14 AM
+MACHINE: 10.0.0.5, EMP NO: 1592077, TIME: 1/27/2025 7:59:11 AM
+MACHINE: 10.0.0.5, EMP NO: 1593363, TIME: 1/27/2025 7:59:17 AM
+MACHINE: 10.0.0.5, EMP NO: 1591945, TIME: 1/27/2025 7:59:29 AM
+MACHINE: 10.0.0.5, EMP NO: 1592191, TIME: 1/27/2025 7:59:36 AM
+MACHINE: 10.0.0.5, EMP NO: 1593604, TIME: 1/27/2025 8:00:28 AM
+MACHINE: 10.0.0.5, EMP NO: 1592535, TIME: 1/27/2025 8:01:39 AM
+MACHINE: 10.0.0.5, EMP NO: 12560, TIME: 1/27/2025 8:41:17 AM
+MACHINE: 10.0.0.5, EMP NO: 1592082, TIME: 1/27/2025 8:42:20 AM
+MACHINE: 10.0.0.5, EMP NO: 3812, TIME: 1/27/2025 8:48:31 AM
+MACHINE: 10.0.0.5, EMP NO: 56482, TIME: 1/27/2025 8:48:37 AM
+MACHINE: 10.0.0.5, EMP NO: 55423, TIME: 1/27/2025 8:48:49 AM
+MACHINE: 10.0.0.5, EMP NO: 1593374, TIME: 1/27/2025 8:49:03 AM
+MACHINE: 10.0.0.5, EMP NO: 3104, TIME: 1/27/2025 8:49:10 AM
+MACHINE: 10.0.0.5, EMP NO: 12409, TIME: 1/27/2025 8:49:31 AM
+MACHINE: 10.0.0.5, EMP NO: 54573, TIME: 1/27/2025 8:53:39 AM
+MACHINE: 10.0.0.5, EMP NO: 12480, TIME: 1/27/2025 8:54:50 AM
+MACHINE: 10.0.0.5, EMP NO: 12441, TIME: 1/27/2025 8:54:59 AM
+MACHINE: 10.0.0.5, EMP NO: 12536, TIME: 1/27/2025 8:55:09 AM
+MACHINE: 10.0.0.5, EMP NO: 1593207, TIME: 1/27/2025 8:55:29 AM
+MACHINE: 10.0.0.5, EMP NO: 2105, TIME: 1/27/2025 8:57:51 AM
+MACHINE: 10.0.0.5, EMP NO: 27, TIME: 1/27/2025 8:57:58 AM
+MACHINE: 10.0.0.5, EMP NO: 127, TIME: 1/27/2025 9:00:26 AM
+MACHINE: 10.0.0.5, EMP NO: 12054, TIME: 1/27/2025 9:04:02 AM
+MACHINE: 10.0.0.5, EMP NO: 127, TIME: 1/27/2025 9:04:17 AM
+MACHINE: 10.0.0.5, EMP NO: 11405, TIME: 1/27/2025 9:04:34 AM
+MACHINE: 10.0.0.5, EMP NO: 2761, TIME: 1/27/2025 9:04:40 AM
+MACHINE: 10.0.0.5, EMP NO: 9532, TIME: 1/27/2025 9:04:46 AM
+MACHINE: 10.0.0.5, EMP NO: 3094, TIME: 1/27/2025 9:04:56 AM
+MACHINE: 10.0.0.5, EMP NO: 2439, TIME: 1/27/2025 9:05:01 AM
+MACHINE: 10.0.0.5, EMP NO: 56375, TIME: 1/27/2025 9:05:17 AM
+MACHINE: 10.0.0.5, EMP NO: 10547, TIME: 1/27/2025 9:05:21 AM
+MACHINE: 10.0.0.5, EMP NO: 11475, TIME: 1/27/2025 9:05:27 AM
+MACHINE: 10.0.0.5, EMP NO: 5553, TIME: 1/27/2025 9:05:36 AM
+MACHINE: 10.0.0.5, EMP NO: 3146, TIME: 1/27/2025 9:05:44 AM
+MACHINE: 10.0.0.5, EMP NO: 12223, TIME: 1/27/2025 9:06:19 AM
+MACHINE: 10.0.0.5, EMP NO: 1951, TIME: 1/27/2025 9:06:26 AM
+MACHINE: 10.0.0.5, EMP NO: 4811, TIME: 1/27/2025 9:06:32 AM
+MACHINE: 10.0.0.5, EMP NO: 1434, TIME: 1/27/2025 9:06:50 AM
+MACHINE: 10.0.0.5, EMP NO: 11977, TIME: 1/27/2025 9:06:55 AM
+MACHINE: 10.0.0.5, EMP NO: 55318, TIME: 1/27/2025 9:07:01 AM
+MACHINE: 10.0.0.5, EMP NO: 9691, TIME: 1/27/2025 9:07:08 AM
+MACHINE: 10.0.0.5, EMP NO: 55269, TIME: 1/27/2025 9:07:13 AM
+MACHINE: 10.0.0.5, EMP NO: 8647, TIME: 1/27/2025 9:07:22 AM
+MACHINE: 10.0.0.5, EMP NO: 981, TIME: 1/27/2025 9:07:26 AM
+MACHINE: 10.0.0.5, EMP NO: 55304, TIME: 1/27/2025 9:07:48 AM
+MACHINE: 10.0.0.5, EMP NO: 56458, TIME: 1/27/2025 9:07:53 AM
+MACHINE: 10.0.0.5, EMP NO: 9661, TIME: 1/27/2025 9:08:00 AM
+MACHINE: 10.0.0.5, EMP NO: 4047, TIME: 1/27/2025 9:08:06 AM
+MACHINE: 10.0.0.5, EMP NO: 149, TIME: 1/27/2025 9:08:56 AM
+MACHINE: 10.0.0.5, EMP NO: 159, TIME: 1/27/2025 9:09:00 AM
+MACHINE: 10.0.0.5, EMP NO: 11974, TIME: 1/27/2025 9:10:36 AM
+MACHINE: 10.0.0.5, EMP NO: 373, TIME: 1/27/2025 9:11:06 AM
+MACHINE: 10.0.0.5, EMP NO: 9738, TIME: 1/27/2025 9:11:45 AM
+MACHINE: 10.0.0.5, EMP NO: 804, TIME: 1/27/2025 9:12:01 AM
+MACHINE: 10.0.0.5, EMP NO: 825, TIME: 1/27/2025 9:12:31 AM
+MACHINE: 10.0.0.5, EMP NO: 793, TIME: 1/27/2025 9:12:36 AM
+MACHINE: 10.0.0.5, EMP NO: 419, TIME: 1/27/2025 9:12:51 AM
+MACHINE: 10.0.0.5, EMP NO: 10580, TIME: 1/27/2025 9:13:49 AM
+MACHINE: 10.0.0.5, EMP NO: 11825, TIME: 1/27/2025 9:16:16 AM
+Successfully inserted 451 records for MACHINE: 10.0.0.5
+10547--> Save in db
+3647--> Save in db
+12559--> Save in db
+--Service is stopped at 1/27/2025 10:25:17 AM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_29_2025.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_29_2025.txt
new file mode 100644
index 0000000..f494ad0
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_29_2025.txt
@@ -0,0 +1,15 @@
+--Service is started at 1/29/2025 11:41:22 AM
+--Service is stopped at 1/29/2025 11:41:27 AM
+--Service is started at 1/29/2025 11:42:01 AM
+--Service is stopped at 1/29/2025 11:42:35 AM
+--Service is started at 1/29/2025 11:42:54 AM
+MACHINE: 192.168.90.20, EMP NO: 101, TIME: 1/28/2025 2:58:43 PM
+Successfully inserted 1 records for MACHINE: 192.168.90.20
+--Service is stopped at 1/29/2025 11:45:55 AM
+--Service is started at 1/29/2025 11:51:22 AM
+MACHINE: 192.168.90.20, EMP NO: 102, TIME: 1/29/2025 11:50:51 AM
+Successfully inserted 1 records for MACHINE: 192.168.90.20
+--Service is stopped at 1/29/2025 11:51:35 AM
+--Service is started at 1/29/2025 11:58:32 AM
+MACHINE: 192.168.90.20 - No data available.
+--Service is stopped at 1/29/2025 11:58:45 AM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_30_2025.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_30_2025.txt
new file mode 100644
index 0000000..9bb3d56
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_1_30_2025.txt
@@ -0,0 +1,608 @@
+--Service is started at 1/30/2025 1:14:06 PM
+MACHINE: 192.168.52.17 - No data available.
+10002 marked deleted in db --> 8
+10009 marked deleted in db --> 8
+1001 marked deleted in db --> 8
+10011 marked deleted in db --> 8
+10044 marked deleted in db --> 8
+10053 marked deleted in db --> 8
+10054 marked deleted in db --> 8
+10079 marked deleted in db --> 8
+10090 marked deleted in db --> 8
+10092 marked deleted in db --> 8
+10096 marked deleted in db --> 8
+10102 marked deleted in db --> 8
+10106 marked deleted in db --> 8
+10115 marked deleted in db --> 8
+10135 marked deleted in db --> 8
+10137 marked deleted in db --> 8
+10149 marked deleted in db --> 8
+1015 marked deleted in db --> 8
+10158 marked deleted in db --> 8
+10160 marked deleted in db --> 8
+10186 marked deleted in db --> 8
+10206 marked deleted in db --> 8
+10217 marked deleted in db --> 8
+1023 marked deleted in db --> 8
+10239 marked deleted in db --> 8
+10252 marked deleted in db --> 8
+10293 marked deleted in db --> 8
+10310 marked deleted in db --> 8
+10329 marked deleted in db --> 8
+10359 marked deleted in db --> 8
+1036 marked deleted in db --> 8
+10373 marked deleted in db --> 8
+10374 marked deleted in db --> 8
+10377 marked deleted in db --> 8
+1038 marked deleted in db --> 8
+10420 marked deleted in db --> 8
+10423 marked deleted in db --> 8
+10468 marked deleted in db --> 8
+10469 marked deleted in db --> 8
+10495 marked deleted in db --> 8
+10502 marked deleted in db --> 8
+10512 marked deleted in db --> 8
+10513 marked deleted in db --> 8
+10514 marked deleted in db --> 8
+1052 marked deleted in db --> 8
+10522 marked deleted in db --> 8
+10523 marked deleted in db --> 8
+10527 marked deleted in db --> 8
+10534 marked deleted in db --> 8
+10562 marked deleted in db --> 8
+10580 marked deleted in db --> 8
+10585 marked deleted in db --> 8
+10603 marked deleted in db --> 8
+10606 marked deleted in db --> 8
+10612 marked deleted in db --> 8
+10638 marked deleted in db --> 8
+10650 marked deleted in db --> 8
+10653 marked deleted in db --> 8
+1067 marked deleted in db --> 8
+10671 marked deleted in db --> 8
+10673 marked deleted in db --> 8
+10682 marked deleted in db --> 8
+10693 marked deleted in db --> 8
+10698 marked deleted in db --> 8
+10699 marked deleted in db --> 8
+10703 marked deleted in db --> 8
+10728 marked deleted in db --> 8
+10753 marked deleted in db --> 8
+10811 marked deleted in db --> 8
+10812 marked deleted in db --> 8
+10813 marked deleted in db --> 8
+10816 marked deleted in db --> 8
+10818 marked deleted in db --> 8
+10827 marked deleted in db --> 8
+10871 marked deleted in db --> 8
+10888 marked deleted in db --> 8
+10900 marked deleted in db --> 8
+10912 marked deleted in db --> 8
+10918 marked deleted in db --> 8
+1093 marked deleted in db --> 8
+10944 marked deleted in db --> 8
+10989 marked deleted in db --> 8
+11005 marked deleted in db --> 8
+11026 marked deleted in db --> 8
+11036 marked deleted in db --> 8
+11052 marked deleted in db --> 8
+11070 marked deleted in db --> 8
+11086 marked deleted in db --> 8
+11092 marked deleted in db --> 8
+11114 marked deleted in db --> 8
+11160 marked deleted in db --> 8
+11161 marked deleted in db --> 8
+11197 marked deleted in db --> 8
+11207 marked deleted in db --> 8
+11216 marked deleted in db --> 8
+1125 marked deleted in db --> 8
+11257 marked deleted in db --> 8
+11259 marked deleted in db --> 8
+11288 marked deleted in db --> 8
+11325 marked deleted in db --> 8
+11332 marked deleted in db --> 8
+11333 marked deleted in db --> 8
+11339 marked deleted in db --> 8
+11396 marked deleted in db --> 8
+1140 marked deleted in db --> 8
+11400 marked deleted in db --> 8
+11412 marked deleted in db --> 8
+11434 marked deleted in db --> 8
+11448 marked deleted in db --> 8
+1151 marked deleted in db --> 8
+11517 marked deleted in db --> 8
+11518 marked deleted in db --> 8
+11547 marked deleted in db --> 8
+11558 marked deleted in db --> 8
+11573 marked deleted in db --> 8
+11579 marked deleted in db --> 8
+11601 marked deleted in db --> 8
+11602 marked deleted in db --> 8
+11618 marked deleted in db --> 8
+11639 marked deleted in db --> 8
+11642 marked deleted in db --> 8
+11657 marked deleted in db --> 8
+11665 marked deleted in db --> 8
+11696 marked deleted in db --> 8
+11701 marked deleted in db --> 8
+11707 marked deleted in db --> 8
+11710 marked deleted in db --> 8
+11718 marked deleted in db --> 8
+11760 marked deleted in db --> 8
+11780 marked deleted in db --> 8
+11781 marked deleted in db --> 8
+11825 marked deleted in db --> 8
+11856 marked deleted in db --> 8
+11888 marked deleted in db --> 8
+11913 marked deleted in db --> 8
+11923 marked deleted in db --> 8
+11925 marked deleted in db --> 8
+11930 marked deleted in db --> 8
+11931 marked deleted in db --> 8
+11968 marked deleted in db --> 8
+11982 marked deleted in db --> 8
+12013 marked deleted in db --> 8
+1203 marked deleted in db --> 8
+12031 marked deleted in db --> 8
+12072 marked deleted in db --> 8
+12075 marked deleted in db --> 8
+12081 marked deleted in db --> 8
+12083 marked deleted in db --> 8
+12085 marked deleted in db --> 8
+12107 marked deleted in db --> 8
+12142 marked deleted in db --> 8
+1215 marked deleted in db --> 8
+1216 marked deleted in db --> 8
+12213 marked deleted in db --> 8
+12214 marked deleted in db --> 8
+12216 marked deleted in db --> 8
+12218 marked deleted in db --> 8
+12228 marked deleted in db --> 8
+12233 marked deleted in db --> 8
+12236 marked deleted in db --> 8
+12237 marked deleted in db --> 8
+12250 marked deleted in db --> 8
+12282 marked deleted in db --> 8
+12283 marked deleted in db --> 8
+12298 marked deleted in db --> 8
+12307 marked deleted in db --> 8
+12326 marked deleted in db --> 8
+12366 marked deleted in db --> 8
+12369 marked deleted in db --> 8
+12371 marked deleted in db --> 8
+12372 marked deleted in db --> 8
+12381 marked deleted in db --> 8
+12411 marked deleted in db --> 8
+12418 marked deleted in db --> 8
+12422 marked deleted in db --> 8
+12423 marked deleted in db --> 8
+12431 marked deleted in db --> 8
+12450 marked deleted in db --> 8
+1246 marked deleted in db --> 8
+12460 marked deleted in db --> 8
+1263 marked deleted in db --> 8
+1302 marked deleted in db --> 8
+1369 marked deleted in db --> 8
+1381 marked deleted in db --> 8
+1456 marked deleted in db --> 8
+1463 marked deleted in db --> 8
+1474 marked deleted in db --> 8
+1476 marked deleted in db --> 8
+1481 marked deleted in db --> 8
+1532 marked deleted in db --> 8
+1552 marked deleted in db --> 8
+1555 marked deleted in db --> 8
+1563 marked deleted in db --> 8
+1578749 marked deleted in db --> 8
+1586 marked deleted in db --> 8
+1642 marked deleted in db --> 8
+1660 marked deleted in db --> 8
+1687 marked deleted in db --> 8
+1697 marked deleted in db --> 8
+1719 marked deleted in db --> 8
+1774 marked deleted in db --> 8
+1776 marked deleted in db --> 8
+1781 marked deleted in db --> 8
+1798 marked deleted in db --> 8
+1816 marked deleted in db --> 8
+1847 marked deleted in db --> 8
+1860 marked deleted in db --> 8
+1902 marked deleted in db --> 8
+1912 marked deleted in db --> 8
+1913 marked deleted in db --> 8
+1966 marked deleted in db --> 8
+2062 marked deleted in db --> 8
+2075 marked deleted in db --> 8
+2107 marked deleted in db --> 8
+2113 marked deleted in db --> 8
+2207 marked deleted in db --> 8
+2232 marked deleted in db --> 8
+2255 marked deleted in db --> 8
+2266 marked deleted in db --> 8
+2275 marked deleted in db --> 8
+2384 marked deleted in db --> 8
+2533 marked deleted in db --> 8
+2545 marked deleted in db --> 8
+2560 marked deleted in db --> 8
+2561 marked deleted in db --> 8
+2578 marked deleted in db --> 8
+2581 marked deleted in db --> 8
+2582 marked deleted in db --> 8
+2608 marked deleted in db --> 8
+2655 marked deleted in db --> 8
+2684 marked deleted in db --> 8
+2692 marked deleted in db --> 8
+2695 marked deleted in db --> 8
+2709 marked deleted in db --> 8
+2725 marked deleted in db --> 8
+2773 marked deleted in db --> 8
+2779 marked deleted in db --> 8
+2842 marked deleted in db --> 8
+2889 marked deleted in db --> 8
+2891 marked deleted in db --> 8
+2892 marked deleted in db --> 8
+2905 marked deleted in db --> 8
+2981 marked deleted in db --> 8
+2986 marked deleted in db --> 8
+2990 marked deleted in db --> 8
+3025 marked deleted in db --> 8
+3058 marked deleted in db --> 8
+3061 marked deleted in db --> 8
+3062 marked deleted in db --> 8
+3063 marked deleted in db --> 8
+3104 marked deleted in db --> 8
+3135 marked deleted in db --> 8
+3165 marked deleted in db --> 8
+3167 marked deleted in db --> 8
+3172 marked deleted in db --> 8
+3176 marked deleted in db --> 8
+3181 marked deleted in db --> 8
+3203 marked deleted in db --> 8
+3255 marked deleted in db --> 8
+3268 marked deleted in db --> 8
+3271 marked deleted in db --> 8
+3276 marked deleted in db --> 8
+3317 marked deleted in db --> 8
+3343 marked deleted in db --> 8
+3390 marked deleted in db --> 8
+3405 marked deleted in db --> 8
+3465 marked deleted in db --> 8
+3486 marked deleted in db --> 8
+3493 marked deleted in db --> 8
+3495 marked deleted in db --> 8
+3502 marked deleted in db --> 8
+3506 marked deleted in db --> 8
+3526 marked deleted in db --> 8
+3561 marked deleted in db --> 8
+3562 marked deleted in db --> 8
+3593 marked deleted in db --> 8
+3612 marked deleted in db --> 8
+3691 marked deleted in db --> 8
+373 marked deleted in db --> 8
+3777 marked deleted in db --> 8
+3779 marked deleted in db --> 8
+3807 marked deleted in db --> 8
+3812 marked deleted in db --> 8
+3821 marked deleted in db --> 8
+3848 marked deleted in db --> 8
+3853 marked deleted in db --> 8
+3877 marked deleted in db --> 8
+3908 marked deleted in db --> 8
+3912 marked deleted in db --> 8
+3941 marked deleted in db --> 8
+3971 marked deleted in db --> 8
+4056 marked deleted in db --> 8
+4081 marked deleted in db --> 8
+4095 marked deleted in db --> 8
+4105 marked deleted in db --> 8
+4106 marked deleted in db --> 8
+4107 marked deleted in db --> 8
+4108 marked deleted in db --> 8
+4109 marked deleted in db --> 8
+4110 marked deleted in db --> 8
+4111 marked deleted in db --> 8
+4131 marked deleted in db --> 8
+4134 marked deleted in db --> 8
+4141 marked deleted in db --> 8
+4153 marked deleted in db --> 8
+4167 marked deleted in db --> 8
+4172 marked deleted in db --> 8
+4174 marked deleted in db --> 8
+4176 marked deleted in db --> 8
+4182 marked deleted in db --> 8
+4203 marked deleted in db --> 8
+4213 marked deleted in db --> 8
+4239 marked deleted in db --> 8
+4343 marked deleted in db --> 8
+4345 marked deleted in db --> 8
+4347 marked deleted in db --> 8
+4397 marked deleted in db --> 8
+4428 marked deleted in db --> 8
+4442 marked deleted in db --> 8
+4458 marked deleted in db --> 8
+461 marked deleted in db --> 8
+4645 marked deleted in db --> 8
+4649 marked deleted in db --> 8
+4652 marked deleted in db --> 8
+4662 marked deleted in db --> 8
+4686 marked deleted in db --> 8
+470 marked deleted in db --> 8
+4730 marked deleted in db --> 8
+4732 marked deleted in db --> 8
+4733 marked deleted in db --> 8
+4742 marked deleted in db --> 8
+4744 marked deleted in db --> 8
+4752 marked deleted in db --> 8
+4756 marked deleted in db --> 8
+4757 marked deleted in db --> 8
+4763 marked deleted in db --> 8
+4767 marked deleted in db --> 8
+4770 marked deleted in db --> 8
+4771 marked deleted in db --> 8
+4772 marked deleted in db --> 8
+4776 marked deleted in db --> 8
+4781 marked deleted in db --> 8
+4786 marked deleted in db --> 8
+4789 marked deleted in db --> 8
+4800 marked deleted in db --> 8
+4801 marked deleted in db --> 8
+4802 marked deleted in db --> 8
+4829 marked deleted in db --> 8
+4830 marked deleted in db --> 8
+4856 marked deleted in db --> 8
+4858 marked deleted in db --> 8
+4876 marked deleted in db --> 8
+4879 marked deleted in db --> 8
+4944 marked deleted in db --> 8
+4982 marked deleted in db --> 8
+5008 marked deleted in db --> 8
+5074 marked deleted in db --> 8
+5084 marked deleted in db --> 8
+5100 marked deleted in db --> 8
+5112 marked deleted in db --> 8
+5138 marked deleted in db --> 8
+5152 marked deleted in db --> 8
+5158 marked deleted in db --> 8
+5160 marked deleted in db --> 8
+5196 marked deleted in db --> 8
+52109 marked deleted in db --> 8
+5211 marked deleted in db --> 8
+5214 marked deleted in db --> 8
+5218 marked deleted in db --> 8
+5235 marked deleted in db --> 8
+5236 marked deleted in db --> 8
+5239 marked deleted in db --> 8
+5245 marked deleted in db --> 8
+52640 marked deleted in db --> 8
+53058 marked deleted in db --> 8
+53069 marked deleted in db --> 8
+5311 marked deleted in db --> 8
+5317 marked deleted in db --> 8
+5318 marked deleted in db --> 8
+5329 marked deleted in db --> 8
+5341 marked deleted in db --> 8
+53606 marked deleted in db --> 8
+53651 marked deleted in db --> 8
+53700 marked deleted in db --> 8
+5371 marked deleted in db --> 8
+53718 marked deleted in db --> 8
+53731 marked deleted in db --> 8
+53734 marked deleted in db --> 8
+53756 marked deleted in db --> 8
+53860 marked deleted in db --> 8
+53892 marked deleted in db --> 8
+53918 marked deleted in db --> 8
+53951 marked deleted in db --> 8
+54011 marked deleted in db --> 8
+54211 marked deleted in db --> 8
+54236 marked deleted in db --> 8
+5434 marked deleted in db --> 8
+5435 marked deleted in db --> 8
+54355 marked deleted in db --> 8
+54372 marked deleted in db --> 8
+54446 marked deleted in db --> 8
+54448 marked deleted in db --> 8
+54451 marked deleted in db --> 8
+5448 marked deleted in db --> 8
+54533 marked deleted in db --> 8
+54541 marked deleted in db --> 8
+54559 marked deleted in db --> 8
+54563 marked deleted in db --> 8
+54570 marked deleted in db --> 8
+54572 marked deleted in db --> 8
+54573 marked deleted in db --> 8
+54688 marked deleted in db --> 8
+54753 marked deleted in db --> 8
+54755 marked deleted in db --> 8
+54803 marked deleted in db --> 8
+5481 marked deleted in db --> 8
+54813 marked deleted in db --> 8
+5483 marked deleted in db --> 8
+54878 marked deleted in db --> 8
+5490 marked deleted in db --> 8
+54912 marked deleted in db --> 8
+54914 marked deleted in db --> 8
+54949 marked deleted in db --> 8
+54950 marked deleted in db --> 8
+55000 marked deleted in db --> 8
+55027 marked deleted in db --> 8
+55052 marked deleted in db --> 8
+55063 marked deleted in db --> 8
+55088 marked deleted in db --> 8
+55101 marked deleted in db --> 8
+5511 marked deleted in db --> 8
+55137 marked deleted in db --> 8
+55184 marked deleted in db --> 8
+5519 marked deleted in db --> 8
+55237 marked deleted in db --> 8
+55244 marked deleted in db --> 8
+5528 marked deleted in db --> 8
+55289 marked deleted in db --> 8
+55298 marked deleted in db --> 8
+55379 marked deleted in db --> 8
+55397 marked deleted in db --> 8
+55423 marked deleted in db --> 8
+55431 marked deleted in db --> 8
+55502 marked deleted in db --> 8
+5553 marked deleted in db --> 8
+5554 marked deleted in db --> 8
+55594 marked deleted in db --> 8
+55609 marked deleted in db --> 8
+55631 marked deleted in db --> 8
+55632 marked deleted in db --> 8
+55642 marked deleted in db --> 8
+55649 marked deleted in db --> 8
+55655 marked deleted in db --> 8
+55676 marked deleted in db --> 8
+55677 marked deleted in db --> 8
+55715 marked deleted in db --> 8
+55755 marked deleted in db --> 8
+55768 marked deleted in db --> 8
+55804 marked deleted in db --> 8
+55814 marked deleted in db --> 8
+55815 marked deleted in db --> 8
+55821 marked deleted in db --> 8
+55830 marked deleted in db --> 8
+55836 marked deleted in db --> 8
+55851 marked deleted in db --> 8
+55861 marked deleted in db --> 8
+55874 marked deleted in db --> 8
+55888 marked deleted in db --> 8
+55891 marked deleted in db --> 8
+55900 marked deleted in db --> 8
+55901 marked deleted in db --> 8
+55903 marked deleted in db --> 8
+55904 marked deleted in db --> 8
+55908 marked deleted in db --> 8
+55954 marked deleted in db --> 8
+55964 marked deleted in db --> 8
+55980 marked deleted in db --> 8
+55999 marked deleted in db --> 8
+56000 marked deleted in db --> 8
+56008 marked deleted in db --> 8
+56033 marked deleted in db --> 8
+56064 marked deleted in db --> 8
+56074 marked deleted in db --> 8
+56081 marked deleted in db --> 8
+56103 marked deleted in db --> 8
+5614 marked deleted in db --> 8
+56151 marked deleted in db --> 8
+56155 marked deleted in db --> 8
+56167 marked deleted in db --> 8
+56181 marked deleted in db --> 8
+56186 marked deleted in db --> 8
+56197 marked deleted in db --> 8
+5621 marked deleted in db --> 8
+56225 marked deleted in db --> 8
+56233 marked deleted in db --> 8
+5625 marked deleted in db --> 8
+56254 marked deleted in db --> 8
+56269 marked deleted in db --> 8
+56298 marked deleted in db --> 8
+56303 marked deleted in db --> 8
+56305 marked deleted in db --> 8
+56307 marked deleted in db --> 8
+56337 marked deleted in db --> 8
+56352 marked deleted in db --> 8
+56369 marked deleted in db --> 8
+56373 marked deleted in db --> 8
+56381 marked deleted in db --> 8
+56382 marked deleted in db --> 8
+56398 marked deleted in db --> 8
+56403 marked deleted in db --> 8
+56404 marked deleted in db --> 8
+56452 marked deleted in db --> 8
+56482 marked deleted in db --> 8
+56535 marked deleted in db --> 8
+5655 marked deleted in db --> 8
+56625 marked deleted in db --> 8
+5681 marked deleted in db --> 8
+57542 marked deleted in db --> 8
+5776 marked deleted in db --> 8
+5970 marked deleted in db --> 8
+5974 marked deleted in db --> 8
+5980 marked deleted in db --> 8
+5998 marked deleted in db --> 8
+61855 marked deleted in db --> 8
+8011 marked deleted in db --> 8
+8081 marked deleted in db --> 8
+8181 marked deleted in db --> 8
+8228 marked deleted in db --> 8
+8268 marked deleted in db --> 8
+8279 marked deleted in db --> 8
+8284 marked deleted in db --> 8
+8290 marked deleted in db --> 8
+8359 marked deleted in db --> 8
+8366 marked deleted in db --> 8
+8380 marked deleted in db --> 8
+8439 marked deleted in db --> 8
+8444 marked deleted in db --> 8
+8458 marked deleted in db --> 8
+8468 marked deleted in db --> 8
+8527 marked deleted in db --> 8
+8528 marked deleted in db --> 8
+8530 marked deleted in db --> 8
+8555 marked deleted in db --> 8
+8583 marked deleted in db --> 8
+8694 marked deleted in db --> 8
+8707 marked deleted in db --> 8
+8708 marked deleted in db --> 8
+8709 marked deleted in db --> 8
+8720 marked deleted in db --> 8
+8755 marked deleted in db --> 8
+8776 marked deleted in db --> 8
+8882 marked deleted in db --> 8
+8915 marked deleted in db --> 8
+8967 marked deleted in db --> 8
+8968 marked deleted in db --> 8
+8969 marked deleted in db --> 8
+9025 marked deleted in db --> 8
+9027 marked deleted in db --> 8
+9029 marked deleted in db --> 8
+9039 marked deleted in db --> 8
+9040 marked deleted in db --> 8
+9065 marked deleted in db --> 8
+9072 marked deleted in db --> 8
+9095 marked deleted in db --> 8
+9101 marked deleted in db --> 8
+9106 marked deleted in db --> 8
+9153 marked deleted in db --> 8
+9162 marked deleted in db --> 8
+9225 marked deleted in db --> 8
+9245 marked deleted in db --> 8
+9257 marked deleted in db --> 8
+9269 marked deleted in db --> 8
+9271 marked deleted in db --> 8
+9299 marked deleted in db --> 8
+9303 marked deleted in db --> 8
+9315 marked deleted in db --> 8
+9328 marked deleted in db --> 8
+9359 marked deleted in db --> 8
+9390 marked deleted in db --> 8
+9410 marked deleted in db --> 8
+9435 marked deleted in db --> 8
+9462 marked deleted in db --> 8
+9520 marked deleted in db --> 8
+9537 marked deleted in db --> 8
+9566 marked deleted in db --> 8
+9586 marked deleted in db --> 8
+9594 marked deleted in db --> 8
+9605 marked deleted in db --> 8
+9641 marked deleted in db --> 8
+9688 marked deleted in db --> 8
+9707 marked deleted in db --> 8
+9708 marked deleted in db --> 8
+9716 marked deleted in db --> 8
+9738 marked deleted in db --> 8
+9774 marked deleted in db --> 8
+9786 marked deleted in db --> 8
+9845 marked deleted in db --> 8
+9895 marked deleted in db --> 8
+9901 marked deleted in db --> 8
+9918 marked deleted in db --> 8
+9929 marked deleted in db --> 8
+993 marked deleted in db --> 8
+9933 marked deleted in db --> 8
+9942 marked deleted in db --> 8
+9998 marked deleted in db --> 8
+--Service is stopped at 1/30/2025 1:16:46 PM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_14_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_14_2024.txt
new file mode 100644
index 0000000..bf21ab4
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_14_2024.txt
@@ -0,0 +1,827 @@
+--Service is started at 2/14/2024 11:51:36 AM
+--Service is started at 2/14/2024 12:48:00 PM
+--Service is started at 2/14/2024 12:48:40 PM
+--Service is started at 2/14/2024 3:28:07 PM
+--Service is started at 2/14/2024 3:34:10 PM
+--Service is started at 2/14/2024 3:36:01 PM
+MACHINE : 192.168.9.169 : NO DATA
+--Service is stopped at 2/14/2024 3:38:28 PM
+--Service is started at 2/14/2024 3:38:59 PM
+MACHINE : 192.168.9.169 : NO DATA
+68--> Save in db
+259--> Save in db
+8953--> Save in db
+5754--> Save in db
+52421--> Save in db
+470--> Save in db
+17--> Save in db
+53539--> Save in db
+9899--> Save in db
+9816--> Save in db
+9004--> Save in db
+9032--> Save in db
+10254--> Save in db
+9712--> Save in db
+8937--> Save in db
+8107--> Save in db
+54141--> Save in db
+9564--> Save in db
+54161--> Save in db
+54147--> Save in db
+9651--> Save in db
+5861--> Save in db
+9962--> Save in db
+8946--> Save in db
+4761--> Save in db
+9250--> Save in db
+9441--> Save in db
+4726--> Save in db
+9524--> Save in db
+9163--> Save in db
+4486--> Save in db
+4596--> Save in db
+9054--> Save in db
+2950--> Save in db
+10223--> Save in db
+9558--> Save in db
+9689--> Save in db
+9125--> Save in db
+2495--> Save in db
+5267--> Save in db
+5950--> Save in db
+9913--> Save in db
+4262--> Save in db
+4490--> Save in db
+4364--> Save in db
+9057--> Save in db
+54670--> Save in db
+4274--> Save in db
+4365--> Save in db
+10235--> Save in db
+3075--> Save in db
+2721--> Save in db
+9870--> Save in db
+5952--> Save in db
+9204--> Save in db
+2626--> Save in db
+5762--> Save in db
+10180--> Save in db
+4499--> Save in db
+4484--> Save in db
+10073--> Save in db
+52695--> Save in db
+51984--> Save in db
+53672--> Save in db
+54889--> Save in db
+54909--> Save in db
+52785--> Save in db
+53886--> Save in db
+54240--> Save in db
+10077--> Save in db
+10100--> Save in db
+10128--> Save in db
+52371--> Save in db
+54758--> Save in db
+54729--> Save in db
+53355--> Save in db
+54845--> Save in db
+54879--> Save in db
+52119--> Save in db
+53301--> Save in db
+54757--> Save in db
+54880--> Save in db
+54140--> Save in db
+54130--> Save in db
+54771--> Save in db
+52557--> Save in db
+53905--> Save in db
+9061--> Save in db
+8971--> Save in db
+9042--> Save in db
+5821--> Save in db
+53704--> Save in db
+51979--> Save in db
+52042--> Save in db
+54532--> Save in db
+54853--> Save in db
+53880--> Save in db
+51448--> Save in db
+52435--> Save in db
+51302--> Save in db
+54893--> Save in db
+3128--> Save in db
+53862--> Save in db
+9080--> Save in db
+51985--> Save in db
+54205--> Save in db
+53931--> Save in db
+54921--> Save in db
+54773--> Save in db
+54774--> Save in db
+53848--> Save in db
+53290--> Save in db
+5028--> Save in db
+53638--> Save in db
+53456--> Save in db
+2653--> Save in db
+53327--> Save in db
+8866--> Save in db
+8867--> Save in db
+3843--> Save in db
+3245--> Save in db
+53220--> Save in db
+53878--> Save in db
+9069--> Save in db
+54895--> Save in db
+52636--> Save in db
+54799--> Save in db
+52460--> Save in db
+53950--> Save in db
+54852--> Save in db
+52678--> Save in db
+54922--> Save in db
+8195--> Save in db
+54143--> Save in db
+8090--> Save in db
+8159--> Save in db
+5702--> Save in db
+3748--> Save in db
+8064--> Save in db
+8907--> Save in db
+9446--> Save in db
+9800--> Save in db
+54868--> Save in db
+3636--> Save in db
+3925--> Save in db
+9808--> Save in db
+5872--> Save in db
+8563--> Save in db
+2629--> Save in db
+5783--> Save in db
+5795--> Save in db
+54785--> Save in db
+9916--> Save in db
+9969--> Save in db
+53026--> Save in db
+9694--> Save in db
+53455--> Save in db
+9863--> Save in db
+54515--> Save in db
+54560--> Save in db
+54503--> Save in db
+54316--> Save in db
+3989--> Save in db
+51956--> Save in db
+9884--> Save in db
+53470--> Save in db
+52773--> Save in db
+52971--> Save in db
+9789--> Save in db
+9844--> Save in db
+54201--> Save in db
+54800--> Save in db
+9885--> Save in db
+54165--> Save in db
+52430--> Save in db
+8048--> Save in db
+9857--> Save in db
+8621--> Save in db
+2941--> Save in db
+5575--> Save in db
+54840--> Save in db
+54730--> Save in db
+54839--> Save in db
+54561--> Save in db
+54580--> Save in db
+9066--> Save in db
+9999--> Save in db
+54765--> Save in db
+10080--> Save in db
+10177--> Save in db
+10093--> Save in db
+54798--> Save in db
+54775--> Save in db
+10269--> Save in db
+54435--> Save in db
+54931--> Save in db
+54846--> Save in db
+8979--> Save in db
+5752--> Save in db
+54933--> Save in db
+9657--> Save in db
+54090--> Save in db
+4939--> Save in db
+9881--> Save in db
+3115--> Save in db
+4938--> Save in db
+4528--> Save in db
+9920--> Save in db
+10295--> Save in db
+5703--> Save in db
+9923--> Save in db
+9855--> Save in db
+9676--> Save in db
+54202--> Save in db
+53401--> Save in db
+54463--> Save in db
+53277--> Save in db
+2497--> Save in db
+53730--> Save in db
+2677--> Save in db
+9622--> Save in db
+9768--> Save in db
+54946--> Save in db
+54948--> Save in db
+813--> Save in db
+10335--> Save in db
+52461--> Save in db
+54344--> Save in db
+54352--> Save in db
+54339--> Save in db
+54122--> Save in db
+53302--> Save in db
+5704--> Save in db
+2469--> Save in db
+3947--> Save in db
+2935--> Save in db
+51592--> Save in db
+10354--> Save in db
+5775--> Save in db
+2723--> Save in db
+9780--> Save in db
+4298--> Save in db
+9117--> Save in db
+3224--> Save in db
+5760--> Save in db
+4399--> Save in db
+4265--> Save in db
+3078--> Save in db
+5856--> Save in db
+54438--> Save in db
+5744--> Save in db
+8274--> Save in db
+54131--> Save in db
+54678--> Save in db
+54223--> Save in db
+54396--> Save in db
+54408--> Save in db
+53405--> Save in db
+54169--> Save in db
+5841--> Save in db
+5748--> Save in db
+--Service is stopped at 2/14/2024 3:41:48 PM
+--Service is started at 2/14/2024 3:59:02 PM
+MACHINE : 192.168.9.169 : NO DATA
+1501816 marked deleted in db --> 6
+1502701 marked deleted in db --> 6
+1505206 marked deleted in db --> 6
+1514855 marked deleted in db --> 6
+1514869 marked deleted in db --> 6
+1519743 marked deleted in db --> 6
+1520158 marked deleted in db --> 6
+1523049 marked deleted in db --> 6
+1524103 marked deleted in db --> 6
+1524353 marked deleted in db --> 6
+156331 marked deleted in db --> 6
+1563905 marked deleted in db --> 6
+1564074 marked deleted in db --> 6
+1565149 marked deleted in db --> 6
+1565559 marked deleted in db --> 6
+1565565 marked deleted in db --> 6
+1565568 marked deleted in db --> 6
+1565574 marked deleted in db --> 6
+1565575 marked deleted in db --> 6
+1565576 marked deleted in db --> 6
+1565577 marked deleted in db --> 6
+1565578 marked deleted in db --> 6
+1565582 marked deleted in db --> 6
+1565584 marked deleted in db --> 6
+1565586 marked deleted in db --> 6
+1565587 marked deleted in db --> 6
+1565588 marked deleted in db --> 6
+1565592 marked deleted in db --> 6
+1565593 marked deleted in db --> 6
+1565595 marked deleted in db --> 6
+1565596 marked deleted in db --> 6
+1565597 marked deleted in db --> 6
+1565598 marked deleted in db --> 6
+1565602 marked deleted in db --> 6
+1565603 marked deleted in db --> 6
+1565605 marked deleted in db --> 6
+1565606 marked deleted in db --> 6
+1565609 marked deleted in db --> 6
+1565610 marked deleted in db --> 6
+1565611 marked deleted in db --> 6
+1565615 marked deleted in db --> 6
+1565617 marked deleted in db --> 6
+1565619 marked deleted in db --> 6
+1565622 marked deleted in db --> 6
+1565625 marked deleted in db --> 6
+1565640 marked deleted in db --> 6
+1565666 marked deleted in db --> 6
+1565710 marked deleted in db --> 6
+1565730 marked deleted in db --> 6
+1565735 marked deleted in db --> 6
+1565740 marked deleted in db --> 6
+1565748 marked deleted in db --> 6
+1565750 marked deleted in db --> 6
+1565751 marked deleted in db --> 6
+1565754 marked deleted in db --> 6
+1565765 marked deleted in db --> 6
+1565792 marked deleted in db --> 6
+1565794 marked deleted in db --> 6
+1565797 marked deleted in db --> 6
+1565798 marked deleted in db --> 6
+1565800 marked deleted in db --> 6
+1565804 marked deleted in db --> 6
+1565812 marked deleted in db --> 6
+1565813 marked deleted in db --> 6
+1565831 marked deleted in db --> 6
+1565835 marked deleted in db --> 6
+1565842 marked deleted in db --> 6
+1565854 marked deleted in db --> 6
+1565865 marked deleted in db --> 6
+1565876 marked deleted in db --> 6
+1565881 marked deleted in db --> 6
+1565885 marked deleted in db --> 6
+1565893 marked deleted in db --> 6
+1565895 marked deleted in db --> 6
+1565904 marked deleted in db --> 6
+1565910 marked deleted in db --> 6
+1565911 marked deleted in db --> 6
+1565912 marked deleted in db --> 6
+1565923 marked deleted in db --> 6
+1565924 marked deleted in db --> 6
+1565925 marked deleted in db --> 6
+1565927 marked deleted in db --> 6
+1565934 marked deleted in db --> 6
+1565936 marked deleted in db --> 6
+1565939 marked deleted in db --> 6
+1565942 marked deleted in db --> 6
+1565944 marked deleted in db --> 6
+1565948 marked deleted in db --> 6
+1565961 marked deleted in db --> 6
+1565969 marked deleted in db --> 6
+1565976 marked deleted in db --> 6
+1565977 marked deleted in db --> 6
+1565997 marked deleted in db --> 6
+1566002 marked deleted in db --> 6
+1566005 marked deleted in db --> 6
+1566014 marked deleted in db --> 6
+1566015 marked deleted in db --> 6
+1566026 marked deleted in db --> 6
+1566027 marked deleted in db --> 6
+1566039 marked deleted in db --> 6
+1566040 marked deleted in db --> 6
+1566043 marked deleted in db --> 6
+1566044 marked deleted in db --> 6
+1566047 marked deleted in db --> 6
+1566073 marked deleted in db --> 6
+1566080 marked deleted in db --> 6
+1566082 marked deleted in db --> 6
+1566087 marked deleted in db --> 6
+1566090 marked deleted in db --> 6
+1566091 marked deleted in db --> 6
+1566113 marked deleted in db --> 6
+1566124 marked deleted in db --> 6
+1566128 marked deleted in db --> 6
+1566133 marked deleted in db --> 6
+1566143 marked deleted in db --> 6
+1566144 marked deleted in db --> 6
+1566148 marked deleted in db --> 6
+1566151 marked deleted in db --> 6
+1566153 marked deleted in db --> 6
+1566159 marked deleted in db --> 6
+1566162 marked deleted in db --> 6
+1566166 marked deleted in db --> 6
+1566173 marked deleted in db --> 6
+1566175 marked deleted in db --> 6
+1566196 marked deleted in db --> 6
+1566197 marked deleted in db --> 6
+1566202 marked deleted in db --> 6
+1566212 marked deleted in db --> 6
+1566213 marked deleted in db --> 6
+1566226 marked deleted in db --> 6
+1566233 marked deleted in db --> 6
+1566238 marked deleted in db --> 6
+1566272 marked deleted in db --> 6
+1566276 marked deleted in db --> 6
+1566279 marked deleted in db --> 6
+1566281 marked deleted in db --> 6
+1566283 marked deleted in db --> 6
+1566284 marked deleted in db --> 6
+1566286 marked deleted in db --> 6
+1566290 marked deleted in db --> 6
+1566292 marked deleted in db --> 6
+1566308 marked deleted in db --> 6
+1566310 marked deleted in db --> 6
+1566313 marked deleted in db --> 6
+1566314 marked deleted in db --> 6
+1566315 marked deleted in db --> 6
+1566351 marked deleted in db --> 6
+1566353 marked deleted in db --> 6
+1566357 marked deleted in db --> 6
+1566359 marked deleted in db --> 6
+1566368 marked deleted in db --> 6
+1566372 marked deleted in db --> 6
+1566399 marked deleted in db --> 6
+1566409 marked deleted in db --> 6
+1566417 marked deleted in db --> 6
+1566421 marked deleted in db --> 6
+1566484 marked deleted in db --> 6
+1566486 marked deleted in db --> 6
+1566489 marked deleted in db --> 6
+1566490 marked deleted in db --> 6
+1566492 marked deleted in db --> 6
+1566493 marked deleted in db --> 6
+1566496 marked deleted in db --> 6
+1566497 marked deleted in db --> 6
+1566498 marked deleted in db --> 6
+1566499 marked deleted in db --> 6
+1566501 marked deleted in db --> 6
+1566517 marked deleted in db --> 6
+1566523 marked deleted in db --> 6
+1566526 marked deleted in db --> 6
+1566531 marked deleted in db --> 6
+1566540 marked deleted in db --> 6
+1566669 marked deleted in db --> 6
+1566670 marked deleted in db --> 6
+1566681 marked deleted in db --> 6
+1566685 marked deleted in db --> 6
+1566693 marked deleted in db --> 6
+1566717 marked deleted in db --> 6
+1566721 marked deleted in db --> 6
+1566873 marked deleted in db --> 6
+1566876 marked deleted in db --> 6
+1566879 marked deleted in db --> 6
+1566884 marked deleted in db --> 6
+1566885 marked deleted in db --> 6
+1566908 marked deleted in db --> 6
+1566911 marked deleted in db --> 6
+1566912 marked deleted in db --> 6
+1566913 marked deleted in db --> 6
+1566916 marked deleted in db --> 6
+1566917 marked deleted in db --> 6
+1566973 marked deleted in db --> 6
+1566975 marked deleted in db --> 6
+1566976 marked deleted in db --> 6
+1566988 marked deleted in db --> 6
+1566989 marked deleted in db --> 6
+1567002 marked deleted in db --> 6
+1567018 marked deleted in db --> 6
+1567030 marked deleted in db --> 6
+1567056 marked deleted in db --> 6
+1567060 marked deleted in db --> 6
+1567062 marked deleted in db --> 6
+1567063 marked deleted in db --> 6
+1567069 marked deleted in db --> 6
+1567070 marked deleted in db --> 6
+1567086 marked deleted in db --> 6
+1567087 marked deleted in db --> 6
+1567090 marked deleted in db --> 6
+1567113 marked deleted in db --> 6
+1567115 marked deleted in db --> 6
+1567123 marked deleted in db --> 6
+1567136 marked deleted in db --> 6
+1567150 marked deleted in db --> 6
+1567154 marked deleted in db --> 6
+1567159 marked deleted in db --> 6
+1567160 marked deleted in db --> 6
+1567177 marked deleted in db --> 6
+1567180 marked deleted in db --> 6
+1567181 marked deleted in db --> 6
+1567235 marked deleted in db --> 6
+1567241 marked deleted in db --> 6
+1567242 marked deleted in db --> 6
+1567243 marked deleted in db --> 6
+1567255 marked deleted in db --> 6
+1567258 marked deleted in db --> 6
+1567259 marked deleted in db --> 6
+1567282 marked deleted in db --> 6
+1567329 marked deleted in db --> 6
+1567340 marked deleted in db --> 6
+1567341 marked deleted in db --> 6
+1567343 marked deleted in db --> 6
+1567346 marked deleted in db --> 6
+1567350 marked deleted in db --> 6
+1567351 marked deleted in db --> 6
+1567395 marked deleted in db --> 6
+1567401 marked deleted in db --> 6
+1567412 marked deleted in db --> 6
+1567413 marked deleted in db --> 6
+1567415 marked deleted in db --> 6
+1567418 marked deleted in db --> 6
+1567421 marked deleted in db --> 6
+1567425 marked deleted in db --> 6
+1567439 marked deleted in db --> 6
+1567447 marked deleted in db --> 6
+1567474 marked deleted in db --> 6
+1567475 marked deleted in db --> 6
+1567490 marked deleted in db --> 6
+1567492 marked deleted in db --> 6
+1567493 marked deleted in db --> 6
+1567494 marked deleted in db --> 6
+1567495 marked deleted in db --> 6
+1567510 marked deleted in db --> 6
+1567524 marked deleted in db --> 6
+1567540 marked deleted in db --> 6
+1567541 marked deleted in db --> 6
+1567544 marked deleted in db --> 6
+1567555 marked deleted in db --> 6
+1568297 marked deleted in db --> 6
+1568308 marked deleted in db --> 6
+1568333 marked deleted in db --> 6
+1568394 marked deleted in db --> 6
+178 marked deleted in db --> 6
+260021 marked deleted in db --> 6
+260029 marked deleted in db --> 6
+260034 marked deleted in db --> 6
+260608 marked deleted in db --> 6
+260620 marked deleted in db --> 6
+260837 marked deleted in db --> 6
+270181 marked deleted in db --> 6
+295831 marked deleted in db --> 6
+296010 marked deleted in db --> 6
+296034 marked deleted in db --> 6
+296256 marked deleted in db --> 6
+296355 marked deleted in db --> 6
+469 marked deleted in db --> 6
+615 marked deleted in db --> 6
+68--> Save in db
+259--> Save in db
+8953--> Save in db
+5754--> Save in db
+52421--> Save in db
+470--> Save in db
+17--> Save in db
+53539--> Save in db
+9899--> Save in db
+9816--> Save in db
+9004--> Save in db
+9032--> Save in db
+10254--> Save in db
+9712--> Save in db
+8937--> Save in db
+8107--> Save in db
+54141--> Save in db
+9564--> Save in db
+54161--> Save in db
+54147--> Save in db
+9651--> Save in db
+5861--> Save in db
+9962--> Save in db
+8946--> Save in db
+4761--> Save in db
+9250--> Save in db
+9441--> Save in db
+4726--> Save in db
+9524--> Save in db
+9163--> Save in db
+4486--> Save in db
+4596--> Save in db
+9054--> Save in db
+2950--> Save in db
+10223--> Save in db
+9558--> Save in db
+9689--> Save in db
+9125--> Save in db
+2495--> Save in db
+5267--> Save in db
+5950--> Save in db
+9913--> Save in db
+4262--> Save in db
+4490--> Save in db
+4364--> Save in db
+9057--> Save in db
+54670--> Save in db
+4274--> Save in db
+4365--> Save in db
+10235--> Save in db
+3075--> Save in db
+2721--> Save in db
+9870--> Save in db
+5952--> Save in db
+9204--> Save in db
+2626--> Save in db
+5762--> Save in db
+10180--> Save in db
+4499--> Save in db
+4484--> Save in db
+10073--> Save in db
+52695--> Save in db
+51984--> Save in db
+53672--> Save in db
+54889--> Save in db
+54909--> Save in db
+52785--> Save in db
+53886--> Save in db
+54240--> Save in db
+10077--> Save in db
+10100--> Save in db
+10128--> Save in db
+52371--> Save in db
+54758--> Save in db
+54729--> Save in db
+53355--> Save in db
+54845--> Save in db
+54879--> Save in db
+52119--> Save in db
+53301--> Save in db
+54757--> Save in db
+54880--> Save in db
+54140--> Save in db
+54130--> Save in db
+54771--> Save in db
+52557--> Save in db
+53905--> Save in db
+9061--> Save in db
+8971--> Save in db
+9042--> Save in db
+5821--> Save in db
+53704--> Save in db
+51979--> Save in db
+52042--> Save in db
+54532--> Save in db
+54853--> Save in db
+53880--> Save in db
+51448--> Save in db
+52435--> Save in db
+51302--> Save in db
+54893--> Save in db
+3128--> Save in db
+53862--> Save in db
+9080--> Save in db
+51985--> Save in db
+54205--> Save in db
+53931--> Save in db
+54921--> Save in db
+54773--> Save in db
+54774--> Save in db
+53848--> Save in db
+53290--> Save in db
+5028--> Save in db
+53638--> Save in db
+53456--> Save in db
+2653--> Save in db
+53327--> Save in db
+8866--> Save in db
+8867--> Save in db
+3843--> Save in db
+3245--> Save in db
+53220--> Save in db
+53878--> Save in db
+9069--> Save in db
+54895--> Save in db
+52636--> Save in db
+54799--> Save in db
+52460--> Save in db
+53950--> Save in db
+54852--> Save in db
+52678--> Save in db
+54922--> Save in db
+8195--> Save in db
+54143--> Save in db
+8090--> Save in db
+8159--> Save in db
+5702--> Save in db
+3748--> Save in db
+8064--> Save in db
+8907--> Save in db
+9446--> Save in db
+9800--> Save in db
+54868--> Save in db
+3636--> Save in db
+3925--> Save in db
+9808--> Save in db
+5872--> Save in db
+8563--> Save in db
+2629--> Save in db
+5783--> Save in db
+5795--> Save in db
+54785--> Save in db
+9916--> Save in db
+9969--> Save in db
+53026--> Save in db
+9694--> Save in db
+53455--> Save in db
+9863--> Save in db
+54515--> Save in db
+54560--> Save in db
+54503--> Save in db
+54316--> Save in db
+3989--> Save in db
+51956--> Save in db
+9884--> Save in db
+53470--> Save in db
+52773--> Save in db
+52971--> Save in db
+9789--> Save in db
+9844--> Save in db
+54201--> Save in db
+54800--> Save in db
+9885--> Save in db
+54165--> Save in db
+52430--> Save in db
+8048--> Save in db
+9857--> Save in db
+8621--> Save in db
+2941--> Save in db
+5575--> Save in db
+54840--> Save in db
+54730--> Save in db
+54839--> Save in db
+54561--> Save in db
+54580--> Save in db
+9066--> Save in db
+9999--> Save in db
+54765--> Save in db
+10080--> Save in db
+10177--> Save in db
+10093--> Save in db
+54798--> Save in db
+54775--> Save in db
+10269--> Save in db
+54435--> Save in db
+54931--> Save in db
+54846--> Save in db
+8979--> Save in db
+5752--> Save in db
+54933--> Save in db
+9657--> Save in db
+54090--> Save in db
+4939--> Save in db
+9881--> Save in db
+3115--> Save in db
+4938--> Save in db
+4528--> Save in db
+9920--> Save in db
+10295--> Save in db
+5703--> Save in db
+9923--> Save in db
+9855--> Save in db
+9676--> Save in db
+54202--> Save in db
+53401--> Save in db
+54463--> Save in db
+53277--> Save in db
+2497--> Save in db
+53730--> Save in db
+2677--> Save in db
+9622--> Save in db
+9768--> Save in db
+54946--> Save in db
+54948--> Save in db
+813--> Save in db
+10335--> Save in db
+52461--> Save in db
+54344--> Save in db
+54352--> Save in db
+54339--> Save in db
+54122--> Save in db
+53302--> Save in db
+5704--> Save in db
+2469--> Save in db
+3947--> Save in db
+2935--> Save in db
+51592--> Save in db
+10354--> Save in db
+5775--> Save in db
+2723--> Save in db
+9780--> Save in db
+4298--> Save in db
+9117--> Save in db
+3224--> Save in db
+5760--> Save in db
+4399--> Save in db
+4265--> Save in db
+3078--> Save in db
+5856--> Save in db
+54438--> Save in db
+5744--> Save in db
+8274--> Save in db
+54131--> Save in db
+54678--> Save in db
+54223--> Save in db
+54396--> Save in db
+54408--> Save in db
+53405--> Save in db
+54169--> Save in db
+5841--> Save in db
+5748--> Save in db
+--Service is stopped at 2/14/2024 4:05:08 PM
+--Service is started at 2/14/2024 4:09:32 PM
+--Service is started at 2/14/2024 4:33:15 PM
+--Service is started at 2/14/2024 4:35:39 PM
+MACHINE : 192.168.9.169 : NO DATA
+--Service is stopped at 2/14/2024 4:36:44 PM
+--Service is started at 2/14/2024 4:36:56 PM
+--Service is started at 2/14/2024 5:30:15 PM
+--Service is started at 2/14/2024 5:36:47 PM
+MACHINE : 192.168.9.169 : NO DATA
+--Service is stopped at 2/14/2024 5:39:03 PM
+--Service is started at 2/14/2024 5:39:20 PM
+MACHINE : 192.168.9.169 : NO DATA
+--Service is stopped at 2/14/2024 5:40:24 PM
+--Service is started at 2/14/2024 5:40:30 PM
+MACHINE : 192.168.9.169 : NO DATA
+--Service is stopped at 2/14/2024 5:40:36 PM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_19_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_19_2024.txt
new file mode 100644
index 0000000..6d41db3
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_19_2024.txt
@@ -0,0 +1,19 @@
+--Service is started at 2/19/2024 4:16:23 PM
+MACHINE : 192.168.6.9 : NO DATA
+--Service is stopped at 2/19/2024 4:17:40 PM
+--Service is started at 2/19/2024 4:52:13 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566351 , TIME : 2/19/2024 4:49:01 PM
+MACHINE : 1, TOTAL EMP : 307
+--Service is stopped at 2/19/2024 4:53:22 PM
+--Service is started at 2/19/2024 4:54:01 PM
+--Service is started at 2/19/2024 5:00:30 PM
+--Service is started at 2/19/2024 5:01:41 PM
+--Service is started at 2/19/2024 5:07:07 PM
+--Service is started at 2/19/2024 5:11:09 PM
+MACHINE : 192.168.6.9 : NO DATA
+--Service is stopped at 2/19/2024 5:12:19 PM
+--Service is started at 2/19/2024 5:12:35 PM
+--Service is started at 2/19/2024 5:13:44 PM
+--Service is started at 2/19/2024 6:09:13 PM
+--Service is started at 2/19/2024 6:10:17 PM
+--Service is started at 2/19/2024 6:16:06 PM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_20_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_20_2024.txt
new file mode 100644
index 0000000..c7207df
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_2_20_2024.txt
@@ -0,0 +1,934 @@
+--Service is started at 2/20/2024 10:39:49 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565885 , TIME : 2/19/2024 6:21:06 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1520404 , TIME : 2/19/2024 6:24:27 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1510556 , TIME : 2/19/2024 6:26:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566351 , TIME : 2/19/2024 6:26:57 PM
+MACHINE : 192.168.6.9 : , EMP NO : 270641 , TIME : 2/19/2024 6:31:03 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567439 , TIME : 2/19/2024 6:32:08 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566669 , TIME : 2/19/2024 6:33:00 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569348 , TIME : 2/19/2024 6:34:15 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565936 , TIME : 2/19/2024 6:47:02 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567421 , TIME : 2/19/2024 6:47:22 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567115 , TIME : 2/19/2024 6:55:44 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566717 , TIME : 2/19/2024 6:56:17 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566148 , TIME : 2/19/2024 6:56:21 PM
+MACHINE : 192.168.6.9 : , EMP NO : 296355 , TIME : 2/19/2024 6:57:56 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567493 , TIME : 2/19/2024 6:58:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567413 , TIME : 2/19/2024 6:59:47 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566908 , TIME : 2/19/2024 7:00:14 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566492 , TIME : 2/19/2024 7:02:23 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569416 , TIME : 2/19/2024 7:05:39 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567235 , TIME : 2/19/2024 7:09:12 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1514855 , TIME : 2/19/2024 7:11:38 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565842 , TIME : 2/19/2024 7:12:33 PM
+MACHINE : 192.168.6.9 : , EMP NO : 260620 , TIME : 2/19/2024 7:13:26 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569354 , TIME : 2/19/2024 7:13:33 PM
+MACHINE : 192.168.6.9 : , EMP NO : 260608 , TIME : 2/19/2024 7:14:46 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566540 , TIME : 2/19/2024 7:20:35 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569500 , TIME : 2/19/2024 7:26:19 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569482 , TIME : 2/19/2024 7:27:55 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569484 , TIME : 2/19/2024 7:28:14 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569481 , TIME : 2/19/2024 7:28:19 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569404 , TIME : 2/19/2024 7:28:36 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569444 , TIME : 2/19/2024 7:29:11 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569443 , TIME : 2/19/2024 7:29:22 PM
+MACHINE : 192.168.6.9 : , EMP NO : 296256 , TIME : 2/19/2024 7:36:19 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569436 , TIME : 2/19/2024 7:38:43 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565754 , TIME : 2/19/2024 7:43:09 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569415 , TIME : 2/19/2024 7:46:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 270171 , TIME : 2/19/2024 7:46:31 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569350 , TIME : 2/19/2024 7:48:30 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569359 , TIME : 2/19/2024 7:49:16 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566315 , TIME : 2/19/2024 7:53:25 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566421 , TIME : 2/19/2024 7:56:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569473 , TIME : 2/19/2024 7:57:54 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566873 , TIME : 2/19/2024 8:01:17 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566421 , TIME : 2/19/2024 8:01:43 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565876 , TIME : 2/19/2024 8:01:58 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569342 , TIME : 2/19/2024 8:05:46 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567087 , TIME : 2/19/2024 8:06:50 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566173 , TIME : 2/19/2024 8:07:19 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565812 , TIME : 2/19/2024 8:13:09 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567150 , TIME : 2/19/2024 8:17:41 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565735 , TIME : 2/19/2024 8:18:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566490 , TIME : 2/19/2024 8:20:49 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569483 , TIME : 2/19/2024 8:35:19 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566090 , TIME : 2/19/2024 8:36:36 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567343 , TIME : 2/19/2024 8:41:59 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565625 , TIME : 2/19/2024 8:46:14 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565813 , TIME : 2/19/2024 8:53:48 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567495 , TIME : 2/19/2024 8:54:29 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1520158 , TIME : 2/19/2024 8:55:16 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566090 , TIME : 2/19/2024 9:01:07 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567282 , TIME : 2/19/2024 9:09:41 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567346 , TIME : 2/19/2024 9:11:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566315 , TIME : 2/20/2024 4:56:10 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569359 , TIME : 2/20/2024 4:56:15 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567343 , TIME : 2/20/2024 5:19:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569436 , TIME : 2/20/2024 5:20:35 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569350 , TIME : 2/20/2024 5:46:38 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565754 , TIME : 2/20/2024 5:46:43 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569415 , TIME : 2/20/2024 5:49:39 AM
+MACHINE : 192.168.6.9 : , EMP NO : 270171 , TIME : 2/20/2024 5:49:45 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567346 , TIME : 2/20/2024 5:55:39 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565735 , TIME : 2/20/2024 5:58:25 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569483 , TIME : 2/20/2024 6:00:51 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565596 , TIME : 2/20/2024 6:08:16 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565625 , TIME : 2/20/2024 6:09:11 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567282 , TIME : 2/20/2024 6:10:12 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569473 , TIME : 2/20/2024 6:11:43 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566490 , TIME : 2/20/2024 6:16:36 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566173 , TIME : 2/20/2024 7:13:14 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567150 , TIME : 2/20/2024 7:35:59 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566492 , TIME : 2/20/2024 7:43:09 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565592 , TIME : 2/20/2024 7:43:21 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565606 , TIME : 2/20/2024 7:48:27 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565885 , TIME : 2/20/2024 7:48:35 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565605 , TIME : 2/20/2024 7:48:43 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569420 , TIME : 2/20/2024 7:49:42 AM
+MACHINE : 192.168.6.9 : , EMP NO : 270641 , TIME : 2/20/2024 7:50:58 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567255 , TIME : 2/20/2024 8:03:18 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567030 , TIME : 2/20/2024 8:05:26 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569348 , TIME : 2/20/2024 8:23:59 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569344 , TIME : 2/20/2024 8:24:04 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566497 , TIME : 2/20/2024 8:24:09 AM
+MACHINE : 192.168.6.9 : , EMP NO : 295831 , TIME : 2/20/2024 8:24:25 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567115 , TIME : 2/20/2024 8:24:43 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569354 , TIME : 2/20/2024 8:27:00 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1568297 , TIME : 2/20/2024 8:33:44 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566873 , TIME : 2/20/2024 8:36:02 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1514869 , TIME : 2/20/2024 8:36:31 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567493 , TIME : 2/20/2024 8:37:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569444 , TIME : 2/20/2024 8:40:07 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569342 , TIME : 2/20/2024 8:40:44 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569443 , TIME : 2/20/2024 8:41:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566148 , TIME : 2/20/2024 8:42:55 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569416 , TIME : 2/20/2024 8:47:05 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566717 , TIME : 2/20/2024 8:49:31 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569404 , TIME : 2/20/2024 8:50:08 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567439 , TIME : 2/20/2024 8:52:10 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567002 , TIME : 2/20/2024 8:53:15 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567421 , TIME : 2/20/2024 8:54:19 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569439 , TIME : 2/20/2024 8:57:55 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569500 , TIME : 2/20/2024 8:58:55 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566421 , TIME : 2/20/2024 8:59:00 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569347 , TIME : 2/20/2024 8:59:58 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569482 , TIME : 2/20/2024 9:00:26 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569484 , TIME : 2/20/2024 9:00:31 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566721 , TIME : 2/20/2024 9:01:28 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566669 , TIME : 2/20/2024 9:02:10 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565842 , TIME : 2/20/2024 9:03:06 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566540 , TIME : 2/20/2024 9:04:05 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1502701 , TIME : 2/20/2024 9:04:38 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567351 , TIME : 2/20/2024 9:05:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 296355 , TIME : 2/20/2024 9:08:17 AM
+MACHINE : 192.168.6.9 : , EMP NO : 178 , TIME : 2/20/2024 9:09:39 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1520404 , TIME : 2/20/2024 9:10:05 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567395 , TIME : 2/20/2024 9:11:00 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1520158 , TIME : 2/20/2024 9:11:21 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566196 , TIME : 2/20/2024 9:13:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1568297 , TIME : 2/20/2024 9:15:40 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569372 , TIME : 2/20/2024 9:20:57 AM
+MACHINE : 192.168.6.9 : , EMP NO : 260029 , TIME : 2/20/2024 9:24:05 AM
+MACHINE : 192.168.6.9 : , EMP NO : 260608 , TIME : 2/20/2024 9:24:48 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567235 , TIME : 2/20/2024 9:26:20 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565969 , TIME : 2/20/2024 9:27:03 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567439 , TIME : 2/20/2024 9:29:23 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565876 , TIME : 2/20/2024 9:29:43 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1510556 , TIME : 2/20/2024 9:31:03 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569501 , TIME : 2/20/2024 9:32:06 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566212 , TIME : 2/20/2024 9:35:42 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567002 , TIME : 2/20/2024 9:42:58 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566540 , TIME : 2/20/2024 10:11:23 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566212 , TIME : 2/20/2024 10:11:27 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566669 , TIME : 2/20/2024 10:33:30 AM
+MACHINE : 1, TOTAL EMP : 307
+--Service is stopped at 2/20/2024 10:41:30 AM
+--Service is started at 2/20/2024 10:42:25 AM
+--Service is started at 2/20/2024 10:43:54 AM
+--Service is started at 2/20/2024 10:59:08 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569443 , TIME : 2/20/2024 10:50:03 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565969 , TIME : 2/20/2024 10:51:46 AM
+MACHINE : 1, TOTAL EMP : 307
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+469 removed from 1
+--Service is stopped at 2/20/2024 11:01:55 AM
+--Service is started at 2/20/2024 11:33:22 AM
+--Service is started at 2/20/2024 11:34:56 AM
+--Service is started at 2/20/2024 11:36:37 AM
+--Service is started at 2/20/2024 11:36:47 AM
+MACHINE : 192.168.6.9 : NO DATA
+260837 marked deleted in db --> 1
+--Service is stopped at 2/20/2024 11:36:52 AM
+--Service is started at 2/20/2024 12:06:33 PM
+MACHINE : 192.168.6.9 : NO DATA
+1524103 removed from 1
+1564074 removed from 1
+1565559 removed from 1
+1565565 removed from 1
+1565568 removed from 1
+1565574 removed from 1
+1565575 removed from 1
+1565576 removed from 1
+1565577 removed from 1
+1565578 removed from 1
+1565582 removed from 1
+1565584 removed from 1
+1565586 removed from 1
+1565587 removed from 1
+1565592 removed from 1
+1565593 removed from 1
+1565603 removed from 1
+1565610 removed from 1
+1565611 removed from 1
+1565615 removed from 1
+1565617 removed from 1
+1565619 removed from 1
+1565640 removed from 1
+1565666 removed from 1
+1565730 removed from 1
+1565735 removed from 1
+1565740 removed from 1
+1565748 removed from 1
+1565751 removed from 1
+1565765 removed from 1
+1565792 removed from 1
+1565794 removed from 1
+1565797 removed from 1
+1565831 removed from 1
+1565835 removed from 1
+1565854 removed from 1
+1565893 removed from 1
+1565895 removed from 1
+1565904 removed from 1
+1565910 removed from 1
+1565911 removed from 1
+1565912 removed from 1
+1565923 removed from 1
+1565924 removed from 1
+1565925 removed from 1
+1565934 removed from 1
+1565939 removed from 1
+1565942 removed from 1
+1565944 removed from 1
+1565948 removed from 1
+1565961 removed from 1
+1565976 removed from 1
+1566002 removed from 1
+1566005 removed from 1
+1566014 removed from 1
+1566015 removed from 1
+1566026 removed from 1
+1566027 removed from 1
+1566040 removed from 1
+1566043 removed from 1
+1566044 removed from 1
+1566047 removed from 1
+1566073 removed from 1
+1566080 removed from 1
+1566087 removed from 1
+1566091 removed from 1
+1566124 removed from 1
+1566143 removed from 1
+1566144 removed from 1
+1566151 removed from 1
+1566159 removed from 1
+1566166 removed from 1
+1566175 removed from 1
+1566197 removed from 1
+1566202 removed from 1
+1566213 removed from 1
+1566226 removed from 1
+1566233 removed from 1
+1566238 removed from 1
+1566272 removed from 1
+1566276 removed from 1
+1566279 removed from 1
+1566283 removed from 1
+1566284 removed from 1
+1566292 removed from 1
+1566308 removed from 1
+1566310 removed from 1
+1566313 removed from 1
+1566357 removed from 1
+1566359 removed from 1
+1566368 removed from 1
+1566372 removed from 1
+1566399 removed from 1
+1566409 removed from 1
+1566417 removed from 1
+1566484 removed from 1
+1566489 removed from 1
+1566498 removed from 1
+1566499 removed from 1
+1566523 removed from 1
+1566526 removed from 1
+1566531 removed from 1
+1566670 removed from 1
+1566681 removed from 1
+1566685 removed from 1
+1566876 removed from 1
+1566879 removed from 1
+1566911 removed from 1
+1566912 removed from 1
+1566913 removed from 1
+1566916 removed from 1
+1566976 removed from 1
+1566988 removed from 1
+1566989 removed from 1
+1567056 removed from 1
+1567062 removed from 1
+1567070 removed from 1
+1567086 removed from 1
+1567090 removed from 1
+1567154 removed from 1
+1567177 removed from 1
+1567180 removed from 1
+1567258 removed from 1
+1567259 removed from 1
+1567401 removed from 1
+1567447 removed from 1
+1567474 removed from 1
+1567490 removed from 1
+1567492 removed from 1
+1567494 removed from 1
+1567510 removed from 1
+1567524 removed from 1
+1567544 removed from 1
+1567555 removed from 1
+1568333 removed from 1
+260837 marked deleted in db --> 1
+1569513--> Save in db
+1569514--> Save in db
+--Service is stopped at 2/20/2024 12:10:29 PM
+--Service is started at 2/20/2024 12:12:12 PM
+MACHINE : 192.168.6.9 : NO DATA
+1569513--> Save in db
+1569514--> Save in db
+--Service is stopped at 2/20/2024 12:12:18 PM
+--Service is started at 2/20/2024 12:14:00 PM
+MACHINE : 192.168.6.9 : NO DATA
+1569513--> Save in db
+1569514--> Save in db
+--Service is stopped at 2/20/2024 12:21:35 PM
+--Service is started at 2/20/2024 12:58:20 PM
+--Service is started at 2/20/2024 12:58:56 PM
+MACHINE : 192.168.6.9 : NO DATA
+--Service is stopped at 2/20/2024 1:00:06 PM
+--Service is started at 2/20/2024 3:28:08 PM
+MACHINE : 192.168.6.9 : , EMP NO : 260608 , TIME : 2/20/2024 1:28:55 PM
+MACHINE : 192.168.6.9 : , EMP NO : 260029 , TIME : 2/20/2024 2:00:55 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566290 , TIME : 2/20/2024 2:46:58 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569348 , TIME : 2/20/2024 3:12:00 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569420 , TIME : 2/20/2024 3:13:28 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566196 , TIME : 2/20/2024 3:18:08 PM
+MACHINE : 1, TOTAL EMP : 173
+--Service is stopped at 2/20/2024 3:28:56 PM
+--Service is started at 2/20/2024 3:30:03 PM
+MACHINE : 192.168.6.9 : NO DATA
+1565595--> Save in db
+1565588--> Save in db
+1565596--> Save in db
+1565625--> Save in db
+1565602--> Save in db
+1565606--> Save in db
+1565605--> Save in db
+1565622--> Save in db
+1565609--> Save in db
+1565597--> Save in db
+1565598--> Save in db
+1565750--> Save in db
+1565754--> Save in db
+1565813--> Save in db
+1565798--> Save in db
+1565800--> Save in db
+1565804--> Save in db
+1565842--> Save in db
+1565812--> Save in db
+1565865--> Save in db
+1565876--> Save in db
+1565881--> Save in db
+1565885--> Save in db
+1565936--> Save in db
+1565927--> Save in db
+1502701--> Save in db
+1565977--> Save in db
+1565969--> Save in db
+1524353--> Save in db
+1565997--> Save in db
+1565710--> Save in db
+1523049--> Save in db
+1566039--> Save in db
+1566082--> Save in db
+1566090--> Save in db
+1566113--> Save in db
+1566128--> Save in db
+1566133--> Save in db
+1566162--> Save in db
+1566173--> Save in db
+1566148--> Save in db
+1566153--> Save in db
+1566196--> Save in db
+1566212--> Save in db
+1566281--> Save in db
+1566286--> Save in db
+1566315--> Save in db
+1566314--> Save in db
+1566290--> Save in db
+1566351--> Save in db
+1566353--> Save in db
+1566421--> Save in db
+1520158--> Save in db
+1514869--> Save in db
+1501816--> Save in db
+1566486--> Save in db
+1566492--> Save in db
+1566490--> Save in db
+1566493--> Save in db
+1566501--> Save in db
+1566496--> Save in db
+1566497--> Save in db
+1566540--> Save in db
+1566517--> Save in db
+1566693--> Save in db
+1566669--> Save in db
+1566721--> Save in db
+1566717--> Save in db
+1566884--> Save in db
+1566873--> Save in db
+1566917--> Save in db
+1566885--> Save in db
+1566908--> Save in db
+1566975--> Save in db
+1566973--> Save in db
+1567018--> Save in db
+1567002--> Save in db
+1567030--> Save in db
+1567060--> Save in db
+1567069--> Save in db
+1567063--> Save in db
+1567087--> Save in db
+1567136--> Save in db
+1567115--> Save in db
+1567113--> Save in db
+1567123--> Save in db
+1567181--> Save in db
+1567150--> Save in db
+1567160--> Save in db
+1567159--> Save in db
+1567241--> Save in db
+1567255--> Save in db
+1567235--> Save in db
+1567242--> Save in db
+1567243--> Save in db
+1567282--> Save in db
+1567340--> Save in db
+1567351--> Save in db
+1567343--> Save in db
+1567350--> Save in db
+1567346--> Save in db
+1567395--> Save in db
+1567415--> Save in db
+1567413--> Save in db
+1567412--> Save in db
+1567418--> Save in db
+1567425--> Save in db
+1567421--> Save in db
+1565149--> Save in db
+1567439--> Save in db
+1567329--> Save in db
+1567493--> Save in db
+1567475--> Save in db
+1567495--> Save in db
+1567541--> Save in db
+1567540--> Save in db
+1568297--> Save in db
+1568308--> Save in db
+156331--> Save in db
+1568394--> Save in db
+1514855--> Save in db
+1505206--> Save in db
+1519743--> Save in db
+1569284--> Save in db
+1569372--> Save in db
+1569347--> Save in db
+1569364--> Save in db
+1569350--> Save in db
+1569359--> Save in db
+1569339--> Save in db
+1569344--> Save in db
+1569348--> Save in db
+1569354--> Save in db
+1569342--> Save in db
+1520404--> Save in db
+1510556--> Save in db
+1569404--> Save in db
+1569432--> Save in db
+1569415--> Save in db
+1569436--> Save in db
+1569439--> Save in db
+1569416--> Save in db
+1569420--> Save in db
+1569474--> Save in db
+1569483--> Save in db
+1569444--> Save in db
+1569443--> Save in db
+1569484--> Save in db
+1569482--> Save in db
+1569481--> Save in db
+1569473--> Save in db
+--Service is stopped at 2/20/2024 3:30:09 PM
+--Service is started at 2/20/2024 3:33:25 PM
+MACHINE : 192.168.6.9 : NO DATA
+156331 removed from 1
+--Service is stopped at 2/20/2024 3:36:54 PM
+--Service is started at 2/20/2024 3:45:41 PM
+MACHINE : 192.168.6.9 : NO DATA
+--Service is stopped at 2/20/2024 3:46:29 PM
+--Service is started at 2/20/2024 3:48:57 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9651 , TIME : 2/19/2024 6:00:24 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4484 , TIME : 2/19/2024 6:02:17 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5312 , TIME : 2/19/2024 6:03:04 PM
+MACHINE : 192.168.9.169 : , EMP NO : 2677 , TIME : 2/19/2024 6:03:12 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10093 , TIME : 2/19/2024 6:05:55 PM
+MACHINE : 192.168.9.169 : , EMP NO : 8937 , TIME : 2/19/2024 6:06:40 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10080 , TIME : 2/19/2024 6:07:10 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5314 , TIME : 2/19/2024 6:26:52 PM
+MACHINE : 192.168.9.169 : , EMP NO : 259 , TIME : 2/19/2024 6:43:38 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9689 , TIME : 2/19/2024 6:48:55 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53862 , TIME : 2/19/2024 6:56:37 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54946 , TIME : 2/19/2024 6:56:44 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53880 , TIME : 2/19/2024 7:04:22 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53704 , TIME : 2/19/2024 7:04:39 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53886 , TIME : 2/19/2024 7:05:01 PM
+MACHINE : 192.168.9.169 : , EMP NO : 3128 , TIME : 2/19/2024 7:08:42 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54853 , TIME : 2/19/2024 7:08:47 PM
+MACHINE : 192.168.9.169 : , EMP NO : 51985 , TIME : 2/19/2024 7:13:44 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52785 , TIME : 2/19/2024 7:15:56 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54460 , TIME : 2/19/2024 7:17:05 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5856 , TIME : 2/19/2024 7:19:12 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54729 , TIME : 2/19/2024 7:21:07 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54933 , TIME : 2/19/2024 7:25:24 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53931 , TIME : 2/19/2024 7:25:32 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54889 , TIME : 2/19/2024 7:25:39 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54931 , TIME : 2/19/2024 7:30:25 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54515 , TIME : 2/19/2024 7:38:41 PM
+MACHINE : 192.168.9.169 : , EMP NO : 51302 , TIME : 2/19/2024 7:40:22 PM
+MACHINE : 192.168.9.169 : , EMP NO : 51448 , TIME : 2/19/2024 7:40:30 PM
+MACHINE : 192.168.9.169 : , EMP NO : 51984 , TIME : 2/19/2024 7:40:45 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54205 , TIME : 2/19/2024 7:41:09 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53301 , TIME : 2/19/2024 7:41:19 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52695 , TIME : 2/19/2024 7:42:14 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54880 , TIME : 2/19/2024 7:44:40 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54532 , TIME : 2/19/2024 7:45:15 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53672 , TIME : 2/19/2024 7:45:24 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52435 , TIME : 2/19/2024 7:45:43 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53027 , TIME : 2/19/2024 7:46:54 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5950 , TIME : 2/19/2024 7:47:01 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54758 , TIME : 2/19/2024 7:48:07 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52557 , TIME : 2/19/2024 7:48:16 PM
+MACHINE : 192.168.9.169 : , EMP NO : 51592 , TIME : 2/19/2024 7:48:48 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4490 , TIME : 2/19/2024 7:49:08 PM
+MACHINE : 192.168.9.169 : , EMP NO : 8195 , TIME : 2/19/2024 7:49:13 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53302 , TIME : 2/19/2024 7:49:21 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54678 , TIME : 2/19/2024 7:49:33 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54580 , TIME : 2/19/2024 7:50:06 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54240 , TIME : 2/19/2024 7:50:51 PM
+MACHINE : 192.168.9.169 : , EMP NO : 3741 , TIME : 2/19/2024 7:51:11 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4262 , TIME : 2/19/2024 7:51:37 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52461 , TIME : 2/19/2024 7:53:12 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54435 , TIME : 2/19/2024 7:53:25 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10269 , TIME : 2/19/2024 7:53:30 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53026 , TIME : 2/19/2024 7:53:37 PM
+MACHINE : 192.168.9.169 : , EMP NO : 8159 , TIME : 2/19/2024 7:53:55 PM
+MACHINE : 192.168.9.169 : , EMP NO : 2469 , TIME : 2/19/2024 7:54:15 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52421 , TIME : 2/19/2024 7:54:25 PM
+MACHINE : 192.168.9.169 : , EMP NO : 8563 , TIME : 2/19/2024 7:54:33 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54202 , TIME : 2/19/2024 7:54:37 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9999 , TIME : 2/19/2024 7:54:42 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4298 , TIME : 2/19/2024 7:54:50 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54799 , TIME : 2/19/2024 7:54:56 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52430 , TIME : 2/19/2024 7:55:03 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53470 , TIME : 2/19/2024 7:55:12 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54543 , TIME : 2/19/2024 7:55:23 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53455 , TIME : 2/19/2024 7:55:36 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54845 , TIME : 2/19/2024 7:55:41 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54550 , TIME : 2/19/2024 7:55:45 PM
+MACHINE : 192.168.9.169 : , EMP NO : 2721 , TIME : 2/19/2024 7:56:03 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53327 , TIME : 2/19/2024 7:56:05 PM
+MACHINE : 192.168.9.169 : , EMP NO : 1465 , TIME : 2/19/2024 7:56:18 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9204 , TIME : 2/19/2024 7:56:25 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52971 , TIME : 2/19/2024 7:56:33 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9789 , TIME : 2/19/2024 7:58:54 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54948 , TIME : 2/19/2024 7:59:13 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52678 , TIME : 2/19/2024 7:59:20 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54846 , TIME : 2/19/2024 7:59:28 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5575 , TIME : 2/19/2024 7:59:40 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9969 , TIME : 2/19/2024 7:59:48 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9863 , TIME : 2/19/2024 7:59:55 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54408 , TIME : 2/19/2024 8:00:08 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53638 , TIME : 2/19/2024 8:00:20 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53730 , TIME : 2/19/2024 8:00:27 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54352 , TIME : 2/19/2024 8:00:44 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54868 , TIME : 2/19/2024 8:00:53 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53950 , TIME : 2/19/2024 8:01:00 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4939 , TIME : 2/19/2024 8:01:07 PM
+MACHINE : 192.168.9.169 : , EMP NO : 2629 , TIME : 2/19/2024 8:01:15 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54909 , TIME : 2/19/2024 8:01:22 PM
+MACHINE : 192.168.9.169 : , EMP NO : 3843 , TIME : 2/19/2024 8:02:20 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9885 , TIME : 2/19/2024 8:02:27 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5841 , TIME : 2/19/2024 8:02:35 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5762 , TIME : 2/19/2024 8:02:43 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10354 , TIME : 2/19/2024 8:02:53 PM
+MACHINE : 192.168.9.169 : , EMP NO : 3115 , TIME : 2/19/2024 8:02:58 PM
+MACHINE : 192.168.9.169 : , EMP NO : 3078 , TIME : 2/19/2024 8:03:04 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54130 , TIME : 2/19/2024 8:03:33 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54090 , TIME : 2/19/2024 8:04:17 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53277 , TIME : 2/19/2024 8:05:19 PM
+MACHINE : 192.168.9.169 : , EMP NO : 3224 , TIME : 2/19/2024 8:06:27 PM
+MACHINE : 192.168.9.169 : , EMP NO : 2723 , TIME : 2/19/2024 8:06:33 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54895 , TIME : 2/19/2024 8:08:57 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52636 , TIME : 2/19/2024 8:10:01 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54773 , TIME : 2/19/2024 8:17:10 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54839 , TIME : 2/19/2024 8:17:20 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54852 , TIME : 2/19/2024 8:18:17 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52460 , TIME : 2/19/2024 8:20:30 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10335 , TIME : 2/19/2024 8:24:13 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9004 , TIME : 2/19/2024 8:27:41 PM
+MACHINE : 192.168.9.169 : , EMP NO : 2495 , TIME : 2/19/2024 8:27:51 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10254 , TIME : 2/19/2024 8:55:59 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10073 , TIME : 2/19/2024 9:00:09 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54774 , TIME : 2/19/2024 9:00:45 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10077 , TIME : 2/19/2024 9:00:53 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10100 , TIME : 2/19/2024 9:00:59 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4499 , TIME : 2/19/2024 9:01:08 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54765 , TIME : 2/19/2024 9:01:17 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10128 , TIME : 2/19/2024 9:03:05 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54895 , TIME : 2/20/2024 6:58:17 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52430 , TIME : 2/20/2024 6:58:23 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54909 , TIME : 2/20/2024 6:59:13 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53327 , TIME : 2/20/2024 7:08:07 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53026 , TIME : 2/20/2024 7:09:51 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54202 , TIME : 2/20/2024 7:09:59 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10354 , TIME : 2/20/2024 7:14:36 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52971 , TIME : 2/20/2024 7:25:10 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54948 , TIME : 2/20/2024 7:25:55 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52678 , TIME : 2/20/2024 7:26:05 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54774 , TIME : 2/20/2024 7:28:43 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54845 , TIME : 2/20/2024 7:42:24 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54515 , TIME : 2/20/2024 7:44:55 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54799 , TIME : 2/20/2024 7:45:40 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52636 , TIME : 2/20/2024 7:46:44 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53638 , TIME : 2/20/2024 7:46:54 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4490 , TIME : 2/20/2024 7:47:13 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9651 , TIME : 2/20/2024 7:47:35 AM
+MACHINE : 192.168.9.169 : , EMP NO : 8195 , TIME : 2/20/2024 7:48:07 AM
+MACHINE : 192.168.9.169 : , EMP NO : 51592 , TIME : 2/20/2024 7:50:41 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9999 , TIME : 2/20/2024 7:50:47 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9204 , TIME : 2/20/2024 7:51:04 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54921 , TIME : 2/20/2024 7:51:11 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9800 , TIME : 2/20/2024 7:51:50 AM
+MACHINE : 192.168.9.169 : , EMP NO : 2721 , TIME : 2/20/2024 7:52:15 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4298 , TIME : 2/20/2024 7:52:30 AM
+MACHINE : 192.168.9.169 : , EMP NO : 3224 , TIME : 2/20/2024 7:52:54 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53302 , TIME : 2/20/2024 7:53:03 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54933 , TIME : 2/20/2024 7:53:35 AM
+MACHINE : 192.168.9.169 : , EMP NO : 1452 , TIME : 2/20/2024 7:54:05 AM
+MACHINE : 192.168.9.169 : , EMP NO : 3741 , TIME : 2/20/2024 7:54:22 AM
+MACHINE : 192.168.9.169 : , EMP NO : 8953 , TIME : 2/20/2024 7:54:36 AM
+MACHINE : 192.168.9.169 : , EMP NO : 51302 , TIME : 2/20/2024 7:54:46 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54729 , TIME : 2/20/2024 7:54:53 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54435 , TIME : 2/20/2024 7:55:00 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53730 , TIME : 2/20/2024 7:55:06 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53027 , TIME : 2/20/2024 7:55:13 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52695 , TIME : 2/20/2024 7:55:31 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54931 , TIME : 2/20/2024 7:55:44 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52785 , TIME : 2/20/2024 7:56:00 AM
+MACHINE : 192.168.9.169 : , EMP NO : 8563 , TIME : 2/20/2024 7:56:16 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53455 , TIME : 2/20/2024 7:56:21 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53672 , TIME : 2/20/2024 7:56:27 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54853 , TIME : 2/20/2024 7:56:35 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54532 , TIME : 2/20/2024 7:56:43 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52557 , TIME : 2/20/2024 7:56:49 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52460 , TIME : 2/20/2024 7:57:01 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9916 , TIME : 2/20/2024 7:57:09 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54130 , TIME : 2/20/2024 7:57:13 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54852 , TIME : 2/20/2024 7:57:57 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10269 , TIME : 2/20/2024 7:58:03 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52435 , TIME : 2/20/2024 7:58:32 AM
+MACHINE : 192.168.9.169 : , EMP NO : 51985 , TIME : 2/20/2024 7:58:37 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54678 , TIME : 2/20/2024 7:58:43 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53704 , TIME : 2/20/2024 7:58:48 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54240 , TIME : 2/20/2024 7:59:08 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54880 , TIME : 2/20/2024 7:59:14 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54090 , TIME : 2/20/2024 7:59:27 AM
+MACHINE : 192.168.9.169 : , EMP NO : 51984 , TIME : 2/20/2024 7:59:43 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54205 , TIME : 2/20/2024 8:00:00 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4262 , TIME : 2/20/2024 8:00:08 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53886 , TIME : 2/20/2024 8:00:17 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54946 , TIME : 2/20/2024 8:00:20 AM
+MACHINE : 192.168.9.169 : , EMP NO : 51448 , TIME : 2/20/2024 8:00:25 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52421 , TIME : 2/20/2024 8:00:39 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53931 , TIME : 2/20/2024 8:00:44 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53301 , TIME : 2/20/2024 8:00:52 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10335 , TIME : 2/20/2024 8:00:58 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54889 , TIME : 2/20/2024 8:01:05 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53950 , TIME : 2/20/2024 8:04:50 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9870 , TIME : 2/20/2024 8:05:14 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54758 , TIME : 2/20/2024 8:05:56 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5841 , TIME : 2/20/2024 8:06:10 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5950 , TIME : 2/20/2024 8:06:42 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9969 , TIME : 2/20/2024 8:07:37 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54846 , TIME : 2/20/2024 8:07:59 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5872 , TIME : 2/20/2024 8:10:35 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9564 , TIME : 2/20/2024 8:12:15 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9676 , TIME : 2/20/2024 8:14:00 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54408 , TIME : 2/20/2024 8:14:29 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53880 , TIME : 2/20/2024 8:30:10 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53862 , TIME : 2/20/2024 8:30:18 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10254 , TIME : 2/20/2024 8:50:40 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54868 , TIME : 2/20/2024 8:51:01 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10080 , TIME : 2/20/2024 8:53:07 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54765 , TIME : 2/20/2024 8:56:44 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10077 , TIME : 2/20/2024 8:57:06 AM
+MACHINE : 192.168.9.169 : , EMP NO : 2677 , TIME : 2/20/2024 9:02:18 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10093 , TIME : 2/20/2024 9:02:29 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5312 , TIME : 2/20/2024 9:02:35 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10073 , TIME : 2/20/2024 9:02:56 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4484 , TIME : 2/20/2024 9:03:53 AM
+MACHINE : 192.168.9.169 : , EMP NO : 8937 , TIME : 2/20/2024 9:04:56 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10100 , TIME : 2/20/2024 9:05:40 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10128 , TIME : 2/20/2024 9:05:47 AM
+MACHINE : 192.168.9.169 : , EMP NO : 813 , TIME : 2/20/2024 9:07:07 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9250 , TIME : 2/20/2024 9:08:59 AM
+MACHINE : 192.168.9.169 : , EMP NO : 8946 , TIME : 2/20/2024 9:09:08 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5314 , TIME : 2/20/2024 9:10:17 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4726 , TIME : 2/20/2024 9:11:36 AM
+MACHINE : 192.168.9.169 : , EMP NO : 3115 , TIME : 2/20/2024 9:12:17 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9004 , TIME : 2/20/2024 9:12:32 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9061 , TIME : 2/20/2024 9:16:27 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9054 , TIME : 2/20/2024 9:16:40 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4499 , TIME : 2/20/2024 9:24:44 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9899 , TIME : 2/20/2024 9:26:13 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9689 , TIME : 2/20/2024 9:26:29 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9080 , TIME : 2/20/2024 9:28:51 AM
+MACHINE : 192.168.9.169 : , EMP NO : 3128 , TIME : 2/20/2024 9:52:57 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4596 , TIME : 2/20/2024 10:11:18 AM
+MACHINE : 192.168.9.169 : , EMP NO : 2495 , TIME : 2/20/2024 10:12:51 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10180 , TIME : 2/20/2024 10:32:11 AM
+MACHINE : 192.168.9.169 : , EMP NO : 259 , TIME : 2/20/2024 11:18:39 AM
+MACHINE : 6, TOTAL EMP : 276
+--Service is stopped at 2/20/2024 3:51:25 PM
+--Service is started at 2/20/2024 3:52:33 PM
+MACHINE : 192.168.9.169 : NO DATA
+54141 removed from 6
+54161 removed from 6
+54201 removed from 6
+54503 removed from 6
+54757 removed from 6
+54893 removed from 6
+54922 removed from 6
+--Service is stopped at 2/20/2024 3:52:50 PM
+--Service is started at 2/20/2024 4:04:11 PM
+--Service is started at 2/20/2024 4:16:32 PM
+--Service is started at 2/20/2024 4:21:11 PM
+--Service is started at 2/20/2024 4:25:05 PM
+MACHINE : 192.168.6.9 : NO DATA
+MACHINE : 192.168.6.10 : NO DATA
+MACHINE : 192.168.10.13 : NOT CONNECTED
+1501816 marked deleted in db --> 3
+1502701 marked deleted in db --> 3
+1505206 marked deleted in db --> 3
+1510556 marked deleted in db --> 3
+1514855 marked deleted in db --> 3
+1514869 marked deleted in db --> 3
+1519743 marked deleted in db --> 3
+1520158 marked deleted in db --> 3
+1520404 marked deleted in db --> 3
+1523049 marked deleted in db --> 3
+1524353 marked deleted in db --> 3
+1565149 marked deleted in db --> 3
+1565588 marked deleted in db --> 3
+1565595 marked deleted in db --> 3
+1565596 marked deleted in db --> 3
+1565597 marked deleted in db --> 3
+1565598 marked deleted in db --> 3
+1565602 marked deleted in db --> 3
+1565605 marked deleted in db --> 3
+1565606 marked deleted in db --> 3
+1565609 marked deleted in db --> 3
+1565622 marked deleted in db --> 3
+1565625 marked deleted in db --> 3
+1565710 marked deleted in db --> 3
+1565750 marked deleted in db --> 3
+1565754 marked deleted in db --> 3
+1565798 marked deleted in db --> 3
+1565800 marked deleted in db --> 3
+1565804 marked deleted in db --> 3
+1565812 marked deleted in db --> 3
+1565813 marked deleted in db --> 3
+1565842 marked deleted in db --> 3
+1565865 marked deleted in db --> 3
+1565876 marked deleted in db --> 3
+1565881 marked deleted in db --> 3
+1565885 marked deleted in db --> 3
+1565927 marked deleted in db --> 3
+1565936 marked deleted in db --> 3
+1565969 marked deleted in db --> 3
+1565977 marked deleted in db --> 3
+1565997 marked deleted in db --> 3
+1566039 marked deleted in db --> 3
+1566082 marked deleted in db --> 3
+1566090 marked deleted in db --> 3
+1566113 marked deleted in db --> 3
+1566128 marked deleted in db --> 3
+1566133 marked deleted in db --> 3
+1566148 marked deleted in db --> 3
+1566153 marked deleted in db --> 3
+1566162 marked deleted in db --> 3
+1566173 marked deleted in db --> 3
+1566196 marked deleted in db --> 3
+1566212 marked deleted in db --> 3
+1566281 marked deleted in db --> 3
+1566286 marked deleted in db --> 3
+1566290 marked deleted in db --> 3
+1566314 marked deleted in db --> 3
+1566315 marked deleted in db --> 3
+1566351 marked deleted in db --> 3
+1566353 marked deleted in db --> 3
+1566421 marked deleted in db --> 3
+1566486 marked deleted in db --> 3
+1566490 marked deleted in db --> 3
+1566492 marked deleted in db --> 3
+1566493 marked deleted in db --> 3
+1566496 marked deleted in db --> 3
+1566497 marked deleted in db --> 3
+1566501 marked deleted in db --> 3
+1566517 marked deleted in db --> 3
+1566540 marked deleted in db --> 3
+1566669 marked deleted in db --> 3
+1566693 marked deleted in db --> 3
+1566717 marked deleted in db --> 3
+1566721 marked deleted in db --> 3
+1566873 marked deleted in db --> 3
+1566884 marked deleted in db --> 3
+1566885 marked deleted in db --> 3
+1566908 marked deleted in db --> 3
+1566917 marked deleted in db --> 3
+1566973 marked deleted in db --> 3
+1566975 marked deleted in db --> 3
+1567002 marked deleted in db --> 3
+1567018 marked deleted in db --> 3
+1567030 marked deleted in db --> 3
+1567060 marked deleted in db --> 3
+1567063 marked deleted in db --> 3
+1567069 marked deleted in db --> 3
+1567087 marked deleted in db --> 3
+1567113 marked deleted in db --> 3
+1567115 marked deleted in db --> 3
+1567123 marked deleted in db --> 3
+1567136 marked deleted in db --> 3
+1567150 marked deleted in db --> 3
+1567159 marked deleted in db --> 3
+1567160 marked deleted in db --> 3
+1567181 marked deleted in db --> 3
+1567235 marked deleted in db --> 3
+1567241 marked deleted in db --> 3
+1567242 marked deleted in db --> 3
+1567243 marked deleted in db --> 3
+1567255 marked deleted in db --> 3
+1567282 marked deleted in db --> 3
+1567329 marked deleted in db --> 3
+1567340 marked deleted in db --> 3
+1567343 marked deleted in db --> 3
+1567346 marked deleted in db --> 3
+1567350 marked deleted in db --> 3
+1567351 marked deleted in db --> 3
+1567395 marked deleted in db --> 3
+1567412 marked deleted in db --> 3
+1567413 marked deleted in db --> 3
+1567415 marked deleted in db --> 3
+1567418 marked deleted in db --> 3
+1567421 marked deleted in db --> 3
+1567425 marked deleted in db --> 3
+1567439 marked deleted in db --> 3
+1567475 marked deleted in db --> 3
+1567493 marked deleted in db --> 3
+1567495 marked deleted in db --> 3
+1567540 marked deleted in db --> 3
+1567541 marked deleted in db --> 3
+1568297 marked deleted in db --> 3
+1568308 marked deleted in db --> 3
+1568394 marked deleted in db --> 3
+1569284 marked deleted in db --> 3
+1569339 marked deleted in db --> 3
+1569342 marked deleted in db --> 3
+1569344 marked deleted in db --> 3
+1569347 marked deleted in db --> 3
+1569348 marked deleted in db --> 3
+1569350 marked deleted in db --> 3
+1569354 marked deleted in db --> 3
+1569359 marked deleted in db --> 3
+1569364 marked deleted in db --> 3
+1569372 marked deleted in db --> 3
+1569404 marked deleted in db --> 3
+1569415 marked deleted in db --> 3
+1569416 marked deleted in db --> 3
+1569420 marked deleted in db --> 3
+1569432 marked deleted in db --> 3
+1569436 marked deleted in db --> 3
+1569439 marked deleted in db --> 3
+1569443 marked deleted in db --> 3
+1569444 marked deleted in db --> 3
+1569473 marked deleted in db --> 3
+1569474 marked deleted in db --> 3
+1569481 marked deleted in db --> 3
+1569482 marked deleted in db --> 3
+1569483 marked deleted in db --> 3
+1569484 marked deleted in db --> 3
+1569500 marked deleted in db --> 3
+1569501 marked deleted in db --> 3
+1569513 marked deleted in db --> 3
+1569514 marked deleted in db --> 3
+178 marked deleted in db --> 3
+260021 marked deleted in db --> 3
+260029 marked deleted in db --> 3
+260034 marked deleted in db --> 3
+260527 marked deleted in db --> 3
+260608 marked deleted in db --> 3
+260620 marked deleted in db --> 3
+270171 marked deleted in db --> 3
+270181 marked deleted in db --> 3
+270641 marked deleted in db --> 3
+295831 marked deleted in db --> 3
+296010 marked deleted in db --> 3
+296034 marked deleted in db --> 3
+296256 marked deleted in db --> 3
+296355 marked deleted in db --> 3
+469 marked deleted in db --> 3
+615 marked deleted in db --> 3
+8458 marked deleted in db --> 3
+MACHINE : 172.16.1.95 : NOT CONNECTED
+MACHINE : 172.16.1.96 : NOT CONNECTED
+MACHINE : 192.168.9.169 : NO DATA
+--Service is stopped at 2/20/2024 4:29:02 PM
+--Service is started at 2/20/2024 4:59:10 PM
+--Service is started at 2/20/2024 5:05:01 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566212 , TIME : 2/20/2024 5:04:41 PM
+MACHINE : 1, TOTAL EMP : 172
+MACHINE : 192.168.6.10 : NO DATA
+1501816 marked deleted in db --> 2
+1502701 marked deleted in db --> 2
+1505206 marked deleted in db --> 2
+--Service is started at 2/20/2024 5:08:56 PM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_11_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_11_2024.txt
new file mode 100644
index 0000000..e71fff3
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_11_2024.txt
@@ -0,0 +1,891 @@
+--Service is started at 3/11/2024 12:40:45 PM
+MACHINE : 192.168.52.17 : NO DATA
+237--> Save in db
+1015--> Save in db
+1023--> Save in db
+1036--> Save in db
+1052--> Save in db
+1203--> Save in db
+1246--> Save in db
+1263--> Save in db
+1463--> Save in db
+1474--> Save in db
+1475--> Save in db
+1555--> Save in db
+1563--> Save in db
+1586--> Save in db
+1642--> Save in db
+1660--> Save in db
+1694--> Save in db
+1697--> Save in db
+1771--> Save in db
+1774--> Save in db
+1776--> Save in db
+1798--> Save in db
+1847--> Save in db
+1912--> Save in db
+1913--> Save in db
+1937--> Save in db
+1966--> Save in db
+2384--> Save in db
+2454--> Save in db
+2533--> Save in db
+2545--> Save in db
+2553--> Save in db
+2561--> Save in db
+2578--> Save in db
+2581--> Save in db
+2608--> Save in db
+2684--> Save in db
+2689--> Save in db
+2692--> Save in db
+2695--> Save in db
+2709--> Save in db
+2779--> Save in db
+2981--> Save in db
+2986--> Save in db
+2990--> Save in db
+2995--> Save in db
+3025--> Save in db
+3062--> Save in db
+3063--> Save in db
+3104--> Save in db
+3113--> Save in db
+3165--> Save in db
+3181--> Save in db
+3197--> Save in db
+3255--> Save in db
+3271--> Save in db
+3343--> Save in db
+3363--> Save in db
+3457--> Save in db
+3493--> Save in db
+3495--> Save in db
+3502--> Save in db
+3506--> Save in db
+3526--> Save in db
+3534--> Save in db
+3561--> Save in db
+3570--> Save in db
+3576--> Save in db
+3587--> Save in db
+3593--> Save in db
+3612--> Save in db
+3629--> Save in db
+3691--> Save in db
+3779--> Save in db
+3807--> Save in db
+3811--> Save in db
+3812--> Save in db
+3821--> Save in db
+3848--> Save in db
+3852--> Save in db
+3912--> Save in db
+3971--> Save in db
+4051--> Save in db
+4056--> Save in db
+4141--> Save in db
+4167--> Save in db
+4176--> Save in db
+4197--> Save in db
+4203--> Save in db
+4213--> Save in db
+4239--> Save in db
+4345--> Save in db
+4347--> Save in db
+4379--> Save in db
+4397--> Save in db
+4420--> Save in db
+4442--> Save in db
+4458--> Save in db
+4487--> Save in db
+4730--> Save in db
+4742--> Save in db
+4744--> Save in db
+4752--> Save in db
+4756--> Save in db
+4757--> Save in db
+4767--> Save in db
+4770--> Save in db
+4772--> Save in db
+4776--> Save in db
+4781--> Save in db
+4801--> Save in db
+4802--> Save in db
+4830--> Save in db
+4856--> Save in db
+4858--> Save in db
+4876--> Save in db
+4879--> Save in db
+4944--> Save in db
+5211--> Save in db
+5214--> Save in db
+5239--> Save in db
+5329--> Save in db
+5341--> Save in db
+5371--> Save in db
+5387--> Save in db
+5435--> Save in db
+5490--> Save in db
+5519--> Save in db
+5553--> Save in db
+5614--> Save in db
+5681--> Save in db
+5937--> Save in db
+5970--> Save in db
+5974--> Save in db
+5980--> Save in db
+8081--> Save in db
+8228--> Save in db
+8359--> Save in db
+8366--> Save in db
+8527--> Save in db
+8528--> Save in db
+8530--> Save in db
+8555--> Save in db
+8694--> Save in db
+8720--> Save in db
+8915--> Save in db
+8969--> Save in db
+9027--> Save in db
+9245--> Save in db
+9300--> Save in db
+9303--> Save in db
+9315--> Save in db
+9390--> Save in db
+9520--> Save in db
+9537--> Save in db
+9548--> Save in db
+9605--> Save in db
+9774--> Save in db
+9786--> Save in db
+9827--> Save in db
+9895--> Save in db
+9931--> Save in db
+9998--> Save in db
+10102--> Save in db
+10118--> Save in db
+10119--> Save in db
+10137--> Save in db
+10158--> Save in db
+10206--> Save in db
+10310--> Save in db
+10372--> Save in db
+10373--> Save in db
+10420--> Save in db
+10423--> Save in db
+52109--> Save in db
+52640--> Save in db
+53069--> Save in db
+53154--> Save in db
+53332--> Save in db
+53338--> Save in db
+53606--> Save in db
+53688--> Save in db
+53697--> Save in db
+53718--> Save in db
+53731--> Save in db
+53734--> Save in db
+53756--> Save in db
+53757--> Save in db
+53841--> Save in db
+53889--> Save in db
+53890--> Save in db
+53899--> Save in db
+53908--> Save in db
+53935--> Save in db
+53978--> Save in db
+53980--> Save in db
+53982--> Save in db
+54209--> Save in db
+54217--> Save in db
+54244--> Save in db
+54245--> Save in db
+54246--> Save in db
+54247--> Save in db
+54249--> Save in db
+54250--> Save in db
+54251--> Save in db
+54267--> Save in db
+54268--> Save in db
+54269--> Save in db
+54270--> Save in db
+54273--> Save in db
+54274--> Save in db
+54279--> Save in db
+54280--> Save in db
+54296--> Save in db
+54297--> Save in db
+54303--> Save in db
+54331--> Save in db
+54368--> Save in db
+54376--> Save in db
+54378--> Save in db
+54380--> Save in db
+54381--> Save in db
+54384--> Save in db
+54388--> Save in db
+54390--> Save in db
+54391--> Save in db
+54407--> Save in db
+54409--> Save in db
+54410--> Save in db
+54412--> Save in db
+54415--> Save in db
+54416--> Save in db
+54427--> Save in db
+54440--> Save in db
+54449--> Save in db
+54451--> Save in db
+54455--> Save in db
+54489--> Save in db
+54541--> Save in db
+54562--> Save in db
+54569--> Save in db
+54583--> Save in db
+54585--> Save in db
+54631--> Save in db
+54669--> Save in db
+54694--> Save in db
+54707--> Save in db
+54709--> Save in db
+54719--> Save in db
+54728--> Save in db
+54742--> Save in db
+54750--> Save in db
+54751--> Save in db
+54759--> Save in db
+54764--> Save in db
+54777--> Save in db
+54778--> Save in db
+54779--> Save in db
+54786--> Save in db
+54790--> Save in db
+54791--> Save in db
+54793--> Save in db
+54803--> Save in db
+54804--> Save in db
+54806--> Save in db
+54816--> Save in db
+54817--> Save in db
+54818--> Save in db
+54819--> Save in db
+54822--> Save in db
+54824--> Save in db
+54841--> Save in db
+54848--> Save in db
+54904--> Save in db
+54908--> Save in db
+54912--> Save in db
+54926--> Save in db
+54934--> Save in db
+54936--> Save in db
+54943--> Save in db
+54947--> Save in db
+54953--> Save in db
+54998--> Save in db
+55016--> Save in db
+55027--> Save in db
+55049--> Save in db
+55055--> Save in db
+55060--> Save in db
+55068--> Save in db
+55069--> Save in db
+55070--> Save in db
+55072--> Save in db
+55074--> Save in db
+55082--> Save in db
+55088--> Save in db
+55090--> Save in db
+55091--> Save in db
+55101--> Save in db
+55104--> Save in db
+1524198--> Save in db
+1568039--> Save in db
+1570059--> Save in db
+1570062--> Save in db
+1570065--> Save in db
+1570069--> Save in db
+1570071--> Save in db
+1570074--> Save in db
+1570075--> Save in db
+1570076--> Save in db
+1570077--> Save in db
+1570079--> Save in db
+1570091--> Save in db
+1570100--> Save in db
+1125--> Save in db
+1552--> Save in db
+9594--> Save in db
+9106--> Save in db
+9929--> Save in db
+3465--> Save in db
+5263--> Save in db
+237--> Save in db
+9666--> Save in db
+4789--> Save in db
+4091--> Save in db
+9991--> Save in db
+5511--> Save in db
+3731--> Save in db
+4732--> Save in db
+9085--> Save in db
+4109--> Save in db
+9435--> Save in db
+54937--> Save in db
+8088--> Save in db
+5625--> Save in db
+4095--> Save in db
+4111--> Save in db
+9611--> Save in db
+4090--> Save in db
+8583--> Save in db
+5998--> Save in db
+10002--> Save in db
+8679--> Save in db
+54211--> Save in db
+5317--> Save in db
+1711--> Save in db
+2892--> Save in db
+54688--> Save in db
+8118--> Save in db
+8279--> Save in db
+10053--> Save in db
+54219--> Save in db
+53058--> Save in db
+9029--> Save in db
+9018--> Save in db
+52465--> Save in db
+10343--> Save in db
+5318--> Save in db
+53820--> Save in db
+54878--> Save in db
+9028--> Save in db
+54312--> Save in db
+53763--> Save in db
+54950--> Save in db
+54927--> Save in db
+53892--> Save in db
+54881--> Save in db
+53700--> Save in db
+1138--> Save in db
+8852--> Save in db
+54448--> Save in db
+54712--> Save in db
+54446--> Save in db
+10135--> Save in db
+9462--> Save in db
+10217--> Save in db
+54456--> Save in db
+54755--> Save in db
+8380--> Save in db
+3533--> Save in db
+2113--> Save in db
+1015--> Save in db
+1023--> Save in db
+1036--> Save in db
+1052--> Save in db
+1203--> Save in db
+1246--> Save in db
+1263--> Save in db
+1463--> Save in db
+1474--> Save in db
+1475--> Save in db
+1555--> Save in db
+1563--> Save in db
+1586--> Save in db
+1642--> Save in db
+1660--> Save in db
+1694--> Save in db
+1697--> Save in db
+1771--> Save in db
+1774--> Save in db
+1776--> Save in db
+1798--> Save in db
+1847--> Save in db
+1912--> Save in db
+1913--> Save in db
+1937--> Save in db
+1966--> Save in db
+2384--> Save in db
+2454--> Save in db
+2533--> Save in db
+2545--> Save in db
+2553--> Save in db
+2561--> Save in db
+2578--> Save in db
+2581--> Save in db
+2608--> Save in db
+2684--> Save in db
+2689--> Save in db
+2692--> Save in db
+2695--> Save in db
+2709--> Save in db
+2779--> Save in db
+2981--> Save in db
+2986--> Save in db
+2990--> Save in db
+2995--> Save in db
+3025--> Save in db
+3062--> Save in db
+3063--> Save in db
+3104--> Save in db
+3113--> Save in db
+3165--> Save in db
+3181--> Save in db
+3197--> Save in db
+3255--> Save in db
+3271--> Save in db
+3343--> Save in db
+3363--> Save in db
+3457--> Save in db
+3493--> Save in db
+3495--> Save in db
+3502--> Save in db
+3506--> Save in db
+3526--> Save in db
+3534--> Save in db
+3561--> Save in db
+3570--> Save in db
+3576--> Save in db
+3587--> Save in db
+3593--> Save in db
+3612--> Save in db
+3629--> Save in db
+3691--> Save in db
+3779--> Save in db
+3807--> Save in db
+3811--> Save in db
+3812--> Save in db
+3821--> Save in db
+3848--> Save in db
+3852--> Save in db
+3912--> Save in db
+3971--> Save in db
+4051--> Save in db
+4056--> Save in db
+4141--> Save in db
+4167--> Save in db
+4176--> Save in db
+4197--> Save in db
+4203--> Save in db
+4213--> Save in db
+4239--> Save in db
+4345--> Save in db
+4347--> Save in db
+4379--> Save in db
+4397--> Save in db
+4420--> Save in db
+4442--> Save in db
+4458--> Save in db
+4487--> Save in db
+4730--> Save in db
+4742--> Save in db
+4744--> Save in db
+4752--> Save in db
+4756--> Save in db
+4757--> Save in db
+4767--> Save in db
+4770--> Save in db
+4772--> Save in db
+4776--> Save in db
+4781--> Save in db
+4801--> Save in db
+4802--> Save in db
+4830--> Save in db
+4856--> Save in db
+4858--> Save in db
+4876--> Save in db
+4879--> Save in db
+4944--> Save in db
+5211--> Save in db
+5214--> Save in db
+5239--> Save in db
+5329--> Save in db
+5341--> Save in db
+5371--> Save in db
+5387--> Save in db
+5435--> Save in db
+5490--> Save in db
+5519--> Save in db
+5553--> Save in db
+5614--> Save in db
+5681--> Save in db
+5937--> Save in db
+5970--> Save in db
+5974--> Save in db
+5980--> Save in db
+8081--> Save in db
+8228--> Save in db
+8359--> Save in db
+8366--> Save in db
+8527--> Save in db
+8528--> Save in db
+8530--> Save in db
+8555--> Save in db
+8694--> Save in db
+8720--> Save in db
+8915--> Save in db
+8969--> Save in db
+9027--> Save in db
+9245--> Save in db
+9300--> Save in db
+9303--> Save in db
+9315--> Save in db
+9390--> Save in db
+9520--> Save in db
+9537--> Save in db
+9548--> Save in db
+9605--> Save in db
+9774--> Save in db
+9786--> Save in db
+9827--> Save in db
+9895--> Save in db
+9931--> Save in db
+9998--> Save in db
+10102--> Save in db
+10118--> Save in db
+10119--> Save in db
+10137--> Save in db
+10158--> Save in db
+10206--> Save in db
+10310--> Save in db
+10372--> Save in db
+10373--> Save in db
+10420--> Save in db
+10423--> Save in db
+52109--> Save in db
+52640--> Save in db
+53069--> Save in db
+53154--> Save in db
+53332--> Save in db
+53338--> Save in db
+53606--> Save in db
+53688--> Save in db
+53697--> Save in db
+53718--> Save in db
+53731--> Save in db
+53734--> Save in db
+53756--> Save in db
+53757--> Save in db
+53841--> Save in db
+53889--> Save in db
+53890--> Save in db
+53899--> Save in db
+53908--> Save in db
+53935--> Save in db
+53978--> Save in db
+53980--> Save in db
+53982--> Save in db
+54209--> Save in db
+54217--> Save in db
+54244--> Save in db
+54245--> Save in db
+54246--> Save in db
+54247--> Save in db
+54249--> Save in db
+54250--> Save in db
+54251--> Save in db
+54267--> Save in db
+54268--> Save in db
+54269--> Save in db
+54270--> Save in db
+54273--> Save in db
+54274--> Save in db
+54279--> Save in db
+54280--> Save in db
+54296--> Save in db
+54297--> Save in db
+54303--> Save in db
+54331--> Save in db
+54368--> Save in db
+54376--> Save in db
+54378--> Save in db
+54380--> Save in db
+54381--> Save in db
+54384--> Save in db
+54388--> Save in db
+54390--> Save in db
+54391--> Save in db
+54407--> Save in db
+54409--> Save in db
+54410--> Save in db
+54412--> Save in db
+54415--> Save in db
+54416--> Save in db
+54427--> Save in db
+54440--> Save in db
+54449--> Save in db
+54451--> Save in db
+54455--> Save in db
+54489--> Save in db
+54541--> Save in db
+54562--> Save in db
+54569--> Save in db
+54583--> Save in db
+54585--> Save in db
+54631--> Save in db
+54669--> Save in db
+54694--> Save in db
+54707--> Save in db
+54709--> Save in db
+54719--> Save in db
+54728--> Save in db
+54742--> Save in db
+54750--> Save in db
+54751--> Save in db
+54759--> Save in db
+54764--> Save in db
+54777--> Save in db
+54778--> Save in db
+54779--> Save in db
+54786--> Save in db
+54790--> Save in db
+54791--> Save in db
+54793--> Save in db
+54803--> Save in db
+54804--> Save in db
+54806--> Save in db
+54816--> Save in db
+54817--> Save in db
+54818--> Save in db
+54819--> Save in db
+54822--> Save in db
+54824--> Save in db
+54841--> Save in db
+54848--> Save in db
+54904--> Save in db
+54908--> Save in db
+54912--> Save in db
+54926--> Save in db
+54934--> Save in db
+54936--> Save in db
+54943--> Save in db
+54947--> Save in db
+54953--> Save in db
+54998--> Save in db
+55016--> Save in db
+55027--> Save in db
+55049--> Save in db
+55055--> Save in db
+55060--> Save in db
+55068--> Save in db
+55069--> Save in db
+55070--> Save in db
+55072--> Save in db
+55074--> Save in db
+55082--> Save in db
+55088--> Save in db
+55090--> Save in db
+55091--> Save in db
+55101--> Save in db
+55104--> Save in db
+1524198--> Save in db
+1568039--> Save in db
+1570059--> Save in db
+1570062--> Save in db
+1570065--> Save in db
+1570069--> Save in db
+1570071--> Save in db
+1570074--> Save in db
+1570075--> Save in db
+1570076--> Save in db
+1570077--> Save in db
+1570079--> Save in db
+1570091--> Save in db
+1570100--> Save in db
+470--> Save in db
+1125--> Save in db
+1552--> Save in db
+9594--> Save in db
+9106--> Save in db
+9929--> Save in db
+3465--> Save in db
+5263--> Save in db
+--Service is stopped at 3/11/2024 12:48:33 PM
+--Service is started at 3/11/2024 12:49:24 PM
+MACHINE : 192.168.52.16 : , EMP NO : 470 , TIME : 3/11/2024 12:46:54 PM
+MACHINE : 192.168.52.16 : , EMP NO : 470 , TIME : 3/11/2024 12:46:56 PM
+MACHINE : 7, TOTAL EMP : 487
+470--> Save in db
+2892--> Save in db
+3486--> Save in db
+4982--> Save in db
+2891--> Save in db
+3135--> Save in db
+10359--> Save in db
+9996--> Save in db
+10024--> Save in db
+4081--> Save in db
+4649--> Save in db
+1--> Save in db
+54559--> Save in db
+54573--> Save in db
+1138--> Save in db
+1711--> Save in db
+9738--> Save in db
+5448--> Save in db
+54572--> Save in db
+3731--> Save in db
+4090--> Save in db
+4091--> Save in db
+4095--> Save in db
+4109--> Save in db
+4111--> Save in db
+4732--> Save in db
+4789--> Save in db
+5317--> Save in db
+5318--> Save in db
+5511--> Save in db
+5625--> Save in db
+5998--> Save in db
+8088--> Save in db
+8118--> Save in db
+8279--> Save in db
+8380--> Save in db
+8583--> Save in db
+8679--> Save in db
+8852--> Save in db
+9018--> Save in db
+9028--> Save in db
+9029--> Save in db
+9085--> Save in db
+9435--> Save in db
+9462--> Save in db
+9611--> Save in db
+9666--> Save in db
+9991--> Save in db
+10002--> Save in db
+10053--> Save in db
+10135--> Save in db
+10217--> Save in db
+10343--> Save in db
+52465--> Save in db
+53058--> Save in db
+53700--> Save in db
+53763--> Save in db
+53820--> Save in db
+53892--> Save in db
+54211--> Save in db
+54219--> Save in db
+54312--> Save in db
+54446--> Save in db
+54448--> Save in db
+54456--> Save in db
+54688--> Save in db
+54712--> Save in db
+54755--> Save in db
+54878--> Save in db
+54881--> Save in db
+54927--> Save in db
+54937--> Save in db
+54950--> Save in db
+4762--> Save in db
+9903--> Save in db
+8967--> Save in db
+54386--> Save in db
+5311--> Save in db
+4829--> Save in db
+4107--> Save in db
+54399--> Save in db
+5235--> Save in db
+5236--> Save in db
+10090--> Save in db
+10419--> Save in db
+4134--> Save in db
+1216--> Save in db
+9246--> Save in db
+10239--> Save in db
+10377--> Save in db
+10293--> Save in db
+9271--> Save in db
+10011--> Save in db
+1481--> Save in db
+2582--> Save in db
+10512--> Save in db
+55017--> Save in db
+10513--> Save in db
+8968--> Save in db
+8709--> Save in db
+53962--> Save in db
+9269--> Save in db
+9162--> Save in db
+54666--> Save in db
+53605--> Save in db
+2889--> Save in db
+8290--> Save in db
+54437--> Save in db
+55062--> Save in db
+1369--> Save in db
+53917--> Save in db
+10160--> Save in db
+4172--> Save in db
+10186--> Save in db
+1902--> Save in db
+4343--> Save in db
+2725--> Save in db
+54784--> Save in db
+53918--> Save in db
+54753--> Save in db
+54939--> Save in db
+1719--> Save in db
+4428--> Save in db
+10240--> Save in db
+51442--> Save in db
+53860--> Save in db
+9876--> Save in db
+9299--> Save in db
+4763--> Save in db
+1140--> Save in db
+53361--> Save in db
+54421--> Save in db
+55073--> Save in db
+9203--> Save in db
+54743--> Save in db
+54393--> Save in db
+54383--> Save in db
+5554--> Save in db
+4771--> Save in db
+10374--> Save in db
+10425--> Save in db
+1067--> Save in db
+10079--> Save in db
+10329--> Save in db
+10514--> Save in db
+8458--> Save in db
+55110--> Save in db
+2773--> Save in db
+9410--> Save in db
+4686--> Save in db
+4174--> Save in db
+53484--> Save in db
+54697--> Save in db
+8268--> Save in db
+1125--> Save in db
+1552--> Save in db
+9594--> Save in db
+9106--> Save in db
+9929--> Save in db
+3465--> Save in db
+5263--> Save in db
+8882--> Save in db
+2842--> Save in db
+9359--> Save in db
+1687--> Save in db
+8011--> Save in db
+55113--> Save in db
+55112--> Save in db
+10495--> Save in db
+40--> Save in db
+3268--> Save in db
+1456--> Save in db
+10115--> Save in db
+10522--> Save in db
+--Service is stopped at 3/11/2024 12:50:50 PM
+--Service is started at 3/11/2024 12:56:15 PM
+--Service is started at 3/11/2024 1:06:10 PM
+MACHINE : 192.168.52.17 : NO DATA
+--Service is stopped at 3/11/2024 1:08:33 PM
+--Service is started at 3/11/2024 1:09:23 PM
+MACHINE : 192.168.52.16 : NO DATA
+--Service is stopped at 3/11/2024 1:12:25 PM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_13_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_13_2024.txt
new file mode 100644
index 0000000..94db6db
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_13_2024.txt
@@ -0,0 +1,136 @@
+--Service is started at 3/13/2024 3:32:31 PM
+--Service is started at 3/13/2024 3:42:25 PM
+--Service is started at 3/13/2024 3:47:36 PM
+--Service is started at 3/13/2024 3:54:29 PM
+MACHINE : 192.168.52.16 : NO DATA
+55116--> Save in db
+55119--> Save in db
+54355--> Save in db
+54699--> Save in db
+54563--> Save in db
+9101--> Save in db
+54828--> Save in db
+4182--> Save in db
+2599--> Save in db
+8981--> Save in db
+55056--> Save in db
+10530--> Save in db
+54406--> Save in db
+8444--> Save in db
+55124--> Save in db
+--Service is stopped at 3/13/2024 3:55:11 PM
+--Service is started at 3/13/2024 3:56:39 PM
+MACHINE : 192.168.52.17 : NO DATA
+40--> Save in db
+1067--> Save in db
+1140--> Save in db
+1216--> Save in db
+1369--> Save in db
+1456--> Save in db
+1481--> Save in db
+1687--> Save in db
+1719--> Save in db
+1902--> Save in db
+2582--> Save in db
+2725--> Save in db
+2773--> Save in db
+2842--> Save in db
+2889--> Save in db
+2891--> Save in db
+3135--> Save in db
+3268--> Save in db
+3486--> Save in db
+4081--> Save in db
+4107--> Save in db
+4134--> Save in db
+4172--> Save in db
+4174--> Save in db
+4343--> Save in db
+4428--> Save in db
+4649--> Save in db
+4686--> Save in db
+4762--> Save in db
+4763--> Save in db
+4771--> Save in db
+4829--> Save in db
+4982--> Save in db
+5235--> Save in db
+5236--> Save in db
+5311--> Save in db
+5448--> Save in db
+5554--> Save in db
+8011--> Save in db
+8268--> Save in db
+8290--> Save in db
+8458--> Save in db
+8709--> Save in db
+8882--> Save in db
+8967--> Save in db
+8968--> Save in db
+9162--> Save in db
+9203--> Save in db
+9246--> Save in db
+9269--> Save in db
+9271--> Save in db
+9299--> Save in db
+9359--> Save in db
+9410--> Save in db
+9738--> Save in db
+9876--> Save in db
+9903--> Save in db
+9996--> Save in db
+10011--> Save in db
+10024--> Save in db
+10079--> Save in db
+10090--> Save in db
+10115--> Save in db
+10160--> Save in db
+10186--> Save in db
+10239--> Save in db
+10240--> Save in db
+10293--> Save in db
+10329--> Save in db
+10359--> Save in db
+10374--> Save in db
+10377--> Save in db
+10419--> Save in db
+10425--> Save in db
+10495--> Save in db
+10512--> Save in db
+10513--> Save in db
+10514--> Save in db
+10522--> Save in db
+51442--> Save in db
+53361--> Save in db
+53484--> Save in db
+53605--> Save in db
+53860--> Save in db
+53917--> Save in db
+53918--> Save in db
+53962--> Save in db
+54383--> Save in db
+54386--> Save in db
+54393--> Save in db
+54399--> Save in db
+54421--> Save in db
+54437--> Save in db
+54559--> Save in db
+54572--> Save in db
+54573--> Save in db
+54666--> Save in db
+54697--> Save in db
+54743--> Save in db
+54753--> Save in db
+54784--> Save in db
+54939--> Save in db
+55017--> Save in db
+55062--> Save in db
+55073--> Save in db
+55110--> Save in db
+55112--> Save in db
+55113--> Save in db
+54699--> Save in db
+54355--> Save in db
+54563--> Save in db
+9101--> Save in db
+--Service is stopped at 3/13/2024 3:57:21 PM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_15_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_15_2024.txt
new file mode 100644
index 0000000..c6b17ea
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_15_2024.txt
@@ -0,0 +1,656 @@
+--Service is started at 3/15/2024 10:20:27 AM
+MACHINE : 192.168.6.9 : , EMP NO : 260034 , TIME : 3/14/2024 10:28:36 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570706 , TIME : 3/14/2024 10:33:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570711 , TIME : 3/14/2024 10:35:56 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570689 , TIME : 3/14/2024 10:39:30 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570216 , TIME : 3/14/2024 11:01:14 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1512160 , TIME : 3/14/2024 11:56:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1523095 , TIME : 3/14/2024 12:47:26 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1523110 , TIME : 3/14/2024 1:05:55 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570611 , TIME : 3/14/2024 1:06:03 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570611 , TIME : 3/14/2024 1:43:05 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1523110 , TIME : 3/14/2024 2:00:58 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567030 , TIME : 3/14/2024 3:12:57 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569344 , TIME : 3/14/2024 3:13:02 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569420 , TIME : 3/14/2024 3:29:54 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1511243 , TIME : 3/14/2024 3:33:29 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1511165 , TIME : 3/14/2024 3:33:36 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1568914 , TIME : 3/14/2024 3:33:44 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566314 , TIME : 3/14/2024 3:33:56 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566317 , TIME : 3/14/2024 3:34:05 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570399 , TIME : 3/14/2024 3:34:17 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1513565 , TIME : 3/14/2024 3:34:25 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567541 , TIME : 3/14/2024 3:37:14 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566196 , TIME : 3/14/2024 3:39:44 PM
+MACHINE : 192.168.6.9 : , EMP NO : 178 , TIME : 3/14/2024 4:14:19 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569347 , TIME : 3/14/2024 4:22:04 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570384 , TIME : 3/14/2024 4:30:40 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566148 , TIME : 3/14/2024 4:32:08 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570583 , TIME : 3/14/2024 4:33:28 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570587 , TIME : 3/14/2024 4:33:59 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570585 , TIME : 3/14/2024 4:34:06 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570136 , TIME : 3/14/2024 4:37:16 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567087 , TIME : 3/14/2024 4:38:12 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565936 , TIME : 3/14/2024 4:40:22 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569261 , TIME : 3/14/2024 4:40:41 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567242 , TIME : 3/14/2024 4:40:49 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570044 , TIME : 3/14/2024 4:41:04 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567905 , TIME : 3/14/2024 4:41:10 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570684 , TIME : 3/14/2024 4:43:21 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570685 , TIME : 3/14/2024 4:43:33 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570527 , TIME : 3/14/2024 4:43:38 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1523556 , TIME : 3/14/2024 4:44:07 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1508823 , TIME : 3/14/2024 4:44:38 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1523110 , TIME : 3/14/2024 4:47:14 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1515959 , TIME : 3/14/2024 4:48:20 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565606 , TIME : 3/14/2024 4:48:47 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566908 , TIME : 3/14/2024 4:49:05 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567346 , TIME : 3/14/2024 4:49:12 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567255 , TIME : 3/14/2024 4:51:21 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566281 , TIME : 3/14/2024 4:52:33 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570493 , TIME : 3/14/2024 4:53:56 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569754 , TIME : 3/14/2024 4:57:35 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569482 , TIME : 3/14/2024 4:57:41 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569934 , TIME : 3/14/2024 4:57:46 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570657 , TIME : 3/14/2024 4:57:55 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566873 , TIME : 3/14/2024 4:58:03 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567350 , TIME : 3/14/2024 4:58:23 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566669 , TIME : 3/14/2024 5:00:03 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569796 , TIME : 3/14/2024 5:01:03 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570089 , TIME : 3/14/2024 5:01:25 PM
+MACHINE : 192.168.6.9 : , EMP NO : 296010 , TIME : 3/14/2024 5:01:49 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566973 , TIME : 3/14/2024 5:01:54 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1520158 , TIME : 3/14/2024 5:03:19 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567115 , TIME : 3/14/2024 5:03:33 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570611 , TIME : 3/14/2024 5:03:56 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1524353 , TIME : 3/14/2024 5:04:02 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565876 , TIME : 3/14/2024 5:04:21 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569500 , TIME : 3/14/2024 5:04:59 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570641 , TIME : 3/14/2024 5:05:07 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1514855 , TIME : 3/14/2024 5:05:39 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566082 , TIME : 3/14/2024 5:06:29 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569514 , TIME : 3/14/2024 5:07:14 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570710 , TIME : 3/14/2024 5:07:30 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569342 , TIME : 3/14/2024 5:08:15 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1510556 , TIME : 3/14/2024 5:08:36 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570259 , TIME : 3/14/2024 5:09:40 PM
+MACHINE : 192.168.6.9 : , EMP NO : 260511 , TIME : 3/14/2024 5:10:32 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1519229 , TIME : 3/14/2024 5:10:44 PM
+MACHINE : 192.168.6.9 : , EMP NO : 260034 , TIME : 3/14/2024 5:11:13 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570584 , TIME : 3/14/2024 5:11:43 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567181 , TIME : 3/14/2024 5:11:58 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570643 , TIME : 3/14/2024 5:12:19 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1505206 , TIME : 3/14/2024 5:12:41 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566025 , TIME : 3/14/2024 5:15:39 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570639 , TIME : 3/14/2024 5:15:59 PM
+MACHINE : 192.168.6.9 : , EMP NO : 270641 , TIME : 3/14/2024 5:25:58 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570188 , TIME : 3/14/2024 5:26:28 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567439 , TIME : 3/14/2024 5:29:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569699 , TIME : 3/14/2024 5:39:53 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570264 , TIME : 3/14/2024 5:53:24 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570229 , TIME : 3/14/2024 5:54:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1514869 , TIME : 3/14/2024 5:54:40 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565596 , TIME : 3/14/2024 7:05:11 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569832 , TIME : 3/14/2024 7:23:45 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569829 , TIME : 3/14/2024 7:35:43 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1512160 , TIME : 3/14/2024 7:38:08 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1523095 , TIME : 3/14/2024 7:38:16 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566492 , TIME : 3/14/2024 7:46:37 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565927 , TIME : 3/14/2024 7:49:37 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569359 , TIME : 3/14/2024 7:50:44 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570145 , TIME : 3/14/2024 7:51:13 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569350 , TIME : 3/14/2024 7:51:17 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565605 , TIME : 3/14/2024 7:56:48 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565609 , TIME : 3/14/2024 7:56:53 PM
+MACHINE : 192.168.6.9 : , EMP NO : 270117 , TIME : 3/14/2024 7:57:11 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566490 , TIME : 3/14/2024 8:00:08 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569415 , TIME : 3/14/2024 8:00:59 PM
+MACHINE : 192.168.6.9 : , EMP NO : 270171 , TIME : 3/14/2024 8:01:06 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567340 , TIME : 3/14/2024 8:01:33 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566162 , TIME : 3/14/2024 8:02:57 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567243 , TIME : 3/14/2024 8:04:22 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1515013 , TIME : 3/14/2024 8:04:40 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1566315 , TIME : 3/14/2024 8:06:31 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570053 , TIME : 3/14/2024 8:06:38 PM
+MACHINE : 192.168.6.9 : , EMP NO : 296010 , TIME : 3/14/2024 8:10:49 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565625 , TIME : 3/14/2024 8:11:36 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570146 , TIME : 3/14/2024 8:14:59 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569701 , TIME : 3/14/2024 8:17:18 PM
+MACHINE : 192.168.6.9 : , EMP NO : 296034 , TIME : 3/14/2024 8:22:17 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569483 , TIME : 3/14/2024 8:24:33 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1570689 , TIME : 3/14/2024 8:25:46 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567346 , TIME : 3/14/2024 8:26:28 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567282 , TIME : 3/14/2024 8:28:11 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1569404 , TIME : 3/14/2024 9:17:36 PM
+MACHINE : 192.168.6.9 : , EMP NO : 296010 , TIME : 3/14/2024 9:27:45 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1567832 , TIME : 3/14/2024 9:27:49 PM
+MACHINE : 192.168.6.9 : , EMP NO : 1565754 , TIME : 3/14/2024 9:28:01 PM
+MACHINE : 192.168.6.9 : , EMP NO : 270117 , TIME : 3/15/2024 3:46:26 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570146 , TIME : 3/15/2024 3:56:57 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567282 , TIME : 3/15/2024 3:59:23 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567346 , TIME : 3/15/2024 4:00:08 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570689 , TIME : 3/15/2024 4:01:11 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566315 , TIME : 3/15/2024 4:01:16 AM
+MACHINE : 192.168.6.9 : , EMP NO : 296034 , TIME : 3/15/2024 4:03:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565625 , TIME : 3/15/2024 4:04:31 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567243 , TIME : 3/15/2024 4:04:59 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569350 , TIME : 3/15/2024 4:06:27 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569483 , TIME : 3/15/2024 4:06:48 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569415 , TIME : 3/15/2024 4:11:25 AM
+MACHINE : 192.168.6.9 : , EMP NO : 270171 , TIME : 3/15/2024 4:11:30 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569359 , TIME : 3/15/2024 4:26:08 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570145 , TIME : 3/15/2024 4:58:25 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565605 , TIME : 3/15/2024 4:59:54 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565609 , TIME : 3/15/2024 5:00:20 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565596 , TIME : 3/15/2024 5:01:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566490 , TIME : 3/15/2024 5:12:36 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566162 , TIME : 3/15/2024 5:12:45 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566492 , TIME : 3/15/2024 5:13:30 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565927 , TIME : 3/15/2024 5:14:57 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570229 , TIME : 3/15/2024 6:50:14 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565754 , TIME : 3/15/2024 7:00:33 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569404 , TIME : 3/15/2024 7:00:47 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567255 , TIME : 3/15/2024 7:17:35 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569420 , TIME : 3/15/2024 7:32:03 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567439 , TIME : 3/15/2024 7:32:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566281 , TIME : 3/15/2024 7:35:00 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570711 , TIME : 3/15/2024 7:37:46 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567541 , TIME : 3/15/2024 7:38:32 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566074 , TIME : 3/15/2024 7:39:13 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570188 , TIME : 3/15/2024 7:44:34 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569261 , TIME : 3/15/2024 7:46:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570136 , TIME : 3/15/2024 7:46:27 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567905 , TIME : 3/15/2024 7:51:37 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1514855 , TIME : 3/15/2024 7:52:50 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1514869 , TIME : 3/15/2024 7:53:17 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570611 , TIME : 3/15/2024 7:54:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570684 , TIME : 3/15/2024 7:54:52 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570685 , TIME : 3/15/2024 7:54:57 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567115 , TIME : 3/15/2024 7:56:25 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570399 , TIME : 3/15/2024 7:57:04 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570044 , TIME : 3/15/2024 7:58:39 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569347 , TIME : 3/15/2024 7:59:21 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1513565 , TIME : 3/15/2024 7:59:44 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1511243 , TIME : 3/15/2024 7:59:58 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570639 , TIME : 3/15/2024 8:00:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569500 , TIME : 3/15/2024 8:00:31 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569344 , TIME : 3/15/2024 8:00:56 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567030 , TIME : 3/15/2024 8:01:05 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569796 , TIME : 3/15/2024 8:01:32 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569342 , TIME : 3/15/2024 8:01:40 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570089 , TIME : 3/15/2024 8:01:47 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566421 , TIME : 3/15/2024 8:02:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565813 , TIME : 3/15/2024 8:02:50 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566148 , TIME : 3/15/2024 8:02:56 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566908 , TIME : 3/15/2024 8:03:08 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1502701 , TIME : 3/15/2024 8:04:08 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569514 , TIME : 3/15/2024 8:04:38 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566873 , TIME : 3/15/2024 8:06:16 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570497 , TIME : 3/15/2024 8:06:21 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1513708 , TIME : 3/15/2024 8:08:16 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570706 , TIME : 3/15/2024 8:08:24 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567242 , TIME : 3/15/2024 8:08:32 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566973 , TIME : 3/15/2024 8:08:37 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566317 , TIME : 3/15/2024 8:09:16 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1568914 , TIME : 3/15/2024 8:09:24 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566314 , TIME : 3/15/2024 8:09:31 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1523110 , TIME : 3/15/2024 8:10:28 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570588 , TIME : 3/15/2024 8:10:53 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570264 , TIME : 3/15/2024 8:12:02 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566082 , TIME : 3/15/2024 8:12:06 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1505206 , TIME : 3/15/2024 8:12:26 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565606 , TIME : 3/15/2024 8:15:38 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1515959 , TIME : 3/15/2024 8:16:04 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565876 , TIME : 3/15/2024 8:16:09 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570729 , TIME : 3/15/2024 8:16:15 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569754 , TIME : 3/15/2024 8:16:50 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569482 , TIME : 3/15/2024 8:16:56 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569934 , TIME : 3/15/2024 8:17:02 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1508823 , TIME : 3/15/2024 8:18:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1523556 , TIME : 3/15/2024 8:18:24 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570584 , TIME : 3/15/2024 8:18:41 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567350 , TIME : 3/15/2024 8:18:51 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570384 , TIME : 3/15/2024 8:19:13 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570657 , TIME : 3/15/2024 8:19:47 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570641 , TIME : 3/15/2024 8:21:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567832 , TIME : 3/15/2024 8:24:23 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1569699 , TIME : 3/15/2024 8:25:05 AM
+MACHINE : 192.168.6.9 : , EMP NO : 270641 , TIME : 3/15/2024 8:25:11 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1519229 , TIME : 3/15/2024 8:26:29 AM
+MACHINE : 192.168.6.9 : , EMP NO : 260527 , TIME : 3/15/2024 8:26:43 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566669 , TIME : 3/15/2024 8:29:32 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1520404 , TIME : 3/15/2024 8:33:45 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570040 , TIME : 3/15/2024 8:34:31 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1520635 , TIME : 3/15/2024 8:35:32 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567181 , TIME : 3/15/2024 8:35:39 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1524353 , TIME : 3/15/2024 8:36:43 AM
+MACHINE : 192.168.6.9 : , EMP NO : 295831 , TIME : 3/15/2024 8:38:01 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1520539 , TIME : 3/15/2024 8:38:19 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1511165 , TIME : 3/15/2024 8:39:19 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570583 , TIME : 3/15/2024 8:39:36 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570585 , TIME : 3/15/2024 8:39:43 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570587 , TIME : 3/15/2024 8:39:54 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570259 , TIME : 3/15/2024 8:42:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566421 , TIME : 3/15/2024 8:44:26 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566908 , TIME : 3/15/2024 8:45:00 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567493 , TIME : 3/15/2024 8:45:28 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1510556 , TIME : 3/15/2024 8:48:57 AM
+MACHINE : 192.168.6.9 : , EMP NO : 260034 , TIME : 3/15/2024 8:53:25 AM
+MACHINE : 192.168.6.9 : , EMP NO : 260608 , TIME : 3/15/2024 8:53:59 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570643 , TIME : 3/15/2024 8:57:22 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1520158 , TIME : 3/15/2024 8:58:16 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1567087 , TIME : 3/15/2024 8:58:34 AM
+MACHINE : 192.168.6.9 : , EMP NO : 296010 , TIME : 3/15/2024 8:59:54 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570264 , TIME : 3/15/2024 9:00:05 AM
+MACHINE : 192.168.6.9 : , EMP NO : 615 , TIME : 3/15/2024 9:04:50 AM
+MACHINE : 192.168.6.9 : , EMP NO : 178 , TIME : 3/15/2024 9:12:49 AM
+MACHINE : 192.168.6.9 : , EMP NO : 260029 , TIME : 3/15/2024 9:13:14 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1565936 , TIME : 3/15/2024 9:13:51 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1515959 , TIME : 3/15/2024 9:14:42 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566196 , TIME : 3/15/2024 9:15:06 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1570684 , TIME : 3/15/2024 9:16:59 AM
+MACHINE : 192.168.6.9 : , EMP NO : 1566025 , TIME : 3/15/2024 10:06:19 AM
+MACHINE : 1, TOTAL EMP : 211
+470--> Save in db
+1567412--> Save in db
+260511--> Save in db
+1569621--> Save in db
+1566025--> Save in db
+1569261--> Save in db
+1569665--> Save in db
+1569699--> Save in db
+1569701--> Save in db
+1569714--> Save in db
+1563905--> Save in db
+1524294--> Save in db
+1568331--> Save in db
+1569750--> Save in db
+1569754--> Save in db
+1569756--> Save in db
+1569796--> Save in db
+1569809--> Save in db
+1569829--> Save in db
+1569832--> Save in db
+1569873--> Save in db
+1569876--> Save in db
+1567181--> Save in db
+1569917--> Save in db
+1569928--> Save in db
+1569934--> Save in db
+1569935--> Save in db
+1519229--> Save in db
+1570033--> Save in db
+1570040--> Save in db
+1570049--> Save in db
+1570044--> Save in db
+1570053--> Save in db
+1570089--> Save in db
+1570146--> Save in db
+1570145--> Save in db
+1570136--> Save in db
+1570201--> Save in db
+1570188--> Save in db
+1516774--> Save in db
+1570207--> Save in db
+1570216--> Save in db
+1570229--> Save in db
+1570234--> Save in db
+1570227--> Save in db
+1570264--> Save in db
+1570259--> Save in db
+1570267--> Save in db
+1570351--> Save in db
+1513565--> Save in db
+1511243--> Save in db
+1566074--> Save in db
+1566317--> Save in db
+1511165--> Save in db
+1568914--> Save in db
+1523095--> Save in db
+1564076--> Save in db
+270117--> Save in db
+1570384--> Save in db
+1570373--> Save in db
+1515026--> Save in db
+1570398--> Save in db
+1570399--> Save in db
+1512160--> Save in db
+1570414--> Save in db
+1519518--> Save in db
+1570426--> Save in db
+1570493--> Save in db
+1570497--> Save in db
+1515959--> Save in db
+1523556--> Save in db
+1570527--> Save in db
+1507911--> Save in db
+1520539--> Save in db
+1508823--> Save in db
+1570557--> Save in db
+1570587--> Save in db
+1570583--> Save in db
+1570585--> Save in db
+1570588--> Save in db
+1570584--> Save in db
+1570611--> Save in db
+1570579--> Save in db
+1505206--> Save in db
+1567087--> Save in db
+1567832--> Save in db
+1570641--> Save in db
+1570639--> Save in db
+1570643--> Save in db
+1570657--> Save in db
+1570689--> Save in db
+1570684--> Save in db
+1570685--> Save in db
+1567905--> Save in db
+1523110--> Save in db
+1567350--> Save in db
+1515013--> Save in db
+1570706--> Save in db
+1570711--> Save in db
+1570710--> Save in db
+1570709--> Save in db
+1570729--> Save in db
+1570733--> Save in db
+1513708--> Save in db
+1520635--> Save in db
+MACHINE : 192.168.70.27 : , EMP NO : 413 , TIME : 3/14/2024 11:19:13 AM
+MACHINE : 192.168.70.27 : , EMP NO : 597 , TIME : 3/14/2024 12:44:16 PM
+MACHINE : 192.168.70.27 : , EMP NO : 295 , TIME : 3/14/2024 3:41:19 PM
+MACHINE : 192.168.70.27 : , EMP NO : 295 , TIME : 3/14/2024 3:41:21 PM
+MACHINE : 192.168.70.27 : , EMP NO : 110 , TIME : 3/14/2024 4:03:36 PM
+MACHINE : 192.168.70.27 : , EMP NO : 261 , TIME : 3/14/2024 4:15:39 PM
+MACHINE : 192.168.70.27 : , EMP NO : 443 , TIME : 3/14/2024 4:15:55 PM
+MACHINE : 192.168.70.27 : , EMP NO : 443 , TIME : 3/14/2024 4:15:57 PM
+MACHINE : 192.168.70.27 : , EMP NO : 937 , TIME : 3/14/2024 4:16:00 PM
+MACHINE : 192.168.70.27 : , EMP NO : 937 , TIME : 3/14/2024 4:16:03 PM
+MACHINE : 192.168.70.27 : , EMP NO : 464 , TIME : 3/14/2024 4:16:15 PM
+MACHINE : 192.168.70.27 : , EMP NO : 464 , TIME : 3/14/2024 4:16:17 PM
+MACHINE : 192.168.70.27 : , EMP NO : 821 , TIME : 3/14/2024 4:18:48 PM
+MACHINE : 192.168.70.27 : , EMP NO : 821 , TIME : 3/14/2024 4:18:50 PM
+MACHINE : 192.168.70.27 : , EMP NO : 690 , TIME : 3/14/2024 4:19:18 PM
+MACHINE : 192.168.70.27 : , EMP NO : 830 , TIME : 3/14/2024 4:19:23 PM
+MACHINE : 192.168.70.27 : , EMP NO : 830 , TIME : 3/14/2024 4:19:26 PM
+MACHINE : 192.168.70.27 : , EMP NO : 856 , TIME : 3/14/2024 4:19:31 PM
+MACHINE : 192.168.70.27 : , EMP NO : 856 , TIME : 3/14/2024 4:19:33 PM
+MACHINE : 192.168.70.27 : , EMP NO : 492 , TIME : 3/14/2024 4:19:35 PM
+MACHINE : 192.168.70.27 : , EMP NO : 492 , TIME : 3/14/2024 4:19:37 PM
+MACHINE : 192.168.70.27 : , EMP NO : 350 , TIME : 3/14/2024 4:20:16 PM
+MACHINE : 192.168.70.27 : , EMP NO : 560 , TIME : 3/14/2024 4:20:29 PM
+MACHINE : 192.168.70.27 : , EMP NO : 560 , TIME : 3/14/2024 4:20:31 PM
+MACHINE : 192.168.70.27 : , EMP NO : 740 , TIME : 3/14/2024 4:20:45 PM
+MACHINE : 192.168.70.27 : , EMP NO : 781 , TIME : 3/14/2024 4:20:51 PM
+MACHINE : 192.168.70.27 : , EMP NO : 801 , TIME : 3/14/2024 4:20:57 PM
+MACHINE : 192.168.70.27 : , EMP NO : 779 , TIME : 3/14/2024 4:21:05 PM
+MACHINE : 192.168.70.27 : , EMP NO : 200 , TIME : 3/14/2024 4:33:49 PM
+MACHINE : 192.168.70.27 : , EMP NO : 200 , TIME : 3/14/2024 4:33:51 PM
+MACHINE : 192.168.70.27 : , EMP NO : 738 , TIME : 3/14/2024 4:35:50 PM
+MACHINE : 192.168.70.27 : , EMP NO : 563 , TIME : 3/14/2024 4:37:09 PM
+MACHINE : 192.168.70.27 : , EMP NO : 833 , TIME : 3/14/2024 4:37:17 PM
+MACHINE : 192.168.70.27 : , EMP NO : 833 , TIME : 3/14/2024 4:37:19 PM
+MACHINE : 192.168.70.27 : , EMP NO : 368 , TIME : 3/14/2024 4:40:03 PM
+MACHINE : 192.168.70.27 : , EMP NO : 368 , TIME : 3/14/2024 4:40:05 PM
+MACHINE : 192.168.70.27 : , EMP NO : 679 , TIME : 3/14/2024 4:44:00 PM
+MACHINE : 192.168.70.27 : , EMP NO : 775 , TIME : 3/14/2024 4:46:11 PM
+MACHINE : 192.168.70.27 : , EMP NO : 775 , TIME : 3/14/2024 4:46:21 PM
+MACHINE : 192.168.70.27 : , EMP NO : 872 , TIME : 3/14/2024 4:48:40 PM
+MACHINE : 192.168.70.27 : , EMP NO : 872 , TIME : 3/14/2024 4:48:42 PM
+MACHINE : 192.168.70.27 : , EMP NO : 817 , TIME : 3/14/2024 4:50:06 PM
+MACHINE : 192.168.70.27 : , EMP NO : 301 , TIME : 3/14/2024 4:58:42 PM
+MACHINE : 192.168.70.27 : , EMP NO : 301 , TIME : 3/14/2024 4:58:44 PM
+MACHINE : 192.168.70.27 : , EMP NO : 854 , TIME : 3/14/2024 5:02:10 PM
+MACHINE : 192.168.70.27 : , EMP NO : 742 , TIME : 3/14/2024 5:06:40 PM
+MACHINE : 192.168.70.27 : , EMP NO : 617 , TIME : 3/14/2024 5:06:49 PM
+MACHINE : 192.168.70.27 : , EMP NO : 617 , TIME : 3/14/2024 5:06:51 PM
+MACHINE : 192.168.70.27 : , EMP NO : 914 , TIME : 3/14/2024 5:09:40 PM
+MACHINE : 192.168.70.27 : , EMP NO : 401 , TIME : 3/14/2024 5:13:08 PM
+MACHINE : 192.168.70.27 : , EMP NO : 469 , TIME : 3/14/2024 5:13:19 PM
+MACHINE : 192.168.70.27 : , EMP NO : 469 , TIME : 3/14/2024 5:13:21 PM
+MACHINE : 192.168.70.27 : , EMP NO : 413 , TIME : 3/14/2024 5:13:34 PM
+MACHINE : 192.168.70.27 : , EMP NO : 413 , TIME : 3/14/2024 5:13:36 PM
+MACHINE : 192.168.70.27 : , EMP NO : 198 , TIME : 3/14/2024 5:22:31 PM
+MACHINE : 192.168.70.27 : , EMP NO : 660 , TIME : 3/14/2024 5:27:47 PM
+MACHINE : 192.168.70.27 : , EMP NO : 6306 , TIME : 3/14/2024 5:39:43 PM
+MACHINE : 192.168.70.27 : , EMP NO : 6306 , TIME : 3/14/2024 5:39:45 PM
+MACHINE : 192.168.70.27 : , EMP NO : 2123 , TIME : 3/14/2024 6:08:36 PM
+MACHINE : 192.168.70.27 : , EMP NO : 372 , TIME : 3/14/2024 6:19:23 PM
+MACHINE : 192.168.70.27 : , EMP NO : 372 , TIME : 3/14/2024 6:19:25 PM
+MACHINE : 192.168.70.27 : , EMP NO : 597 , TIME : 3/14/2024 8:57:44 PM
+MACHINE : 192.168.70.27 : , EMP NO : 110 , TIME : 3/15/2024 8:31:25 AM
+MACHINE : 192.168.70.27 : , EMP NO : 110 , TIME : 3/15/2024 8:31:27 AM
+MACHINE : 192.168.70.27 : , EMP NO : 854 , TIME : 3/15/2024 8:44:16 AM
+MACHINE : 192.168.70.27 : , EMP NO : 854 , TIME : 3/15/2024 8:44:18 AM
+MACHINE : 192.168.70.27 : , EMP NO : 4875 , TIME : 3/15/2024 8:55:52 AM
+MACHINE : 192.168.70.27 : , EMP NO : 443 , TIME : 3/15/2024 8:58:29 AM
+MACHINE : 192.168.70.27 : , EMP NO : 261 , TIME : 3/15/2024 9:01:37 AM
+MACHINE : 192.168.70.27 : , EMP NO : 821 , TIME : 3/15/2024 9:02:15 AM
+MACHINE : 192.168.70.27 : , EMP NO : 821 , TIME : 3/15/2024 9:02:17 AM
+MACHINE : 192.168.70.27 : , EMP NO : 821 , TIME : 3/15/2024 9:02:19 AM
+MACHINE : 192.168.70.27 : , EMP NO : 781 , TIME : 3/15/2024 9:03:06 AM
+MACHINE : 192.168.70.27 : , EMP NO : 492 , TIME : 3/15/2024 9:05:34 AM
+MACHINE : 192.168.70.27 : , EMP NO : 492 , TIME : 3/15/2024 9:05:36 AM
+MACHINE : 192.168.70.27 : , EMP NO : 560 , TIME : 3/15/2024 9:05:42 AM
+MACHINE : 192.168.70.27 : , EMP NO : 560 , TIME : 3/15/2024 9:05:44 AM
+MACHINE : 192.168.70.27 : , EMP NO : 560 , TIME : 3/15/2024 9:05:47 AM
+MACHINE : 192.168.70.27 : , EMP NO : 801 , TIME : 3/15/2024 9:06:10 AM
+MACHINE : 192.168.70.27 : , EMP NO : 801 , TIME : 3/15/2024 9:06:12 AM
+MACHINE : 192.168.70.27 : , EMP NO : 830 , TIME : 3/15/2024 9:06:15 AM
+MACHINE : 192.168.70.27 : , EMP NO : 856 , TIME : 3/15/2024 9:06:19 AM
+MACHINE : 192.168.70.27 : , EMP NO : 856 , TIME : 3/15/2024 9:06:21 AM
+MACHINE : 192.168.70.27 : , EMP NO : 679 , TIME : 3/15/2024 9:06:42 AM
+MACHINE : 192.168.70.27 : , EMP NO : 469 , TIME : 3/15/2024 9:07:06 AM
+MACHINE : 192.168.70.27 : , EMP NO : 413 , TIME : 3/15/2024 9:07:11 AM
+MACHINE : 192.168.70.27 : , EMP NO : 690 , TIME : 3/15/2024 9:07:16 AM
+MACHINE : 192.168.70.27 : , EMP NO : 740 , TIME : 3/15/2024 9:07:21 AM
+MACHINE : 192.168.70.27 : , EMP NO : 740 , TIME : 3/15/2024 9:07:23 AM
+MACHINE : 192.168.70.27 : , EMP NO : 828 , TIME : 3/15/2024 9:08:35 AM
+MACHINE : 192.168.70.27 : , EMP NO : 772 , TIME : 3/15/2024 9:09:54 AM
+MACHINE : 192.168.70.27 : , EMP NO : 872 , TIME : 3/15/2024 9:10:07 AM
+MACHINE : 192.168.70.27 : , EMP NO : 872 , TIME : 3/15/2024 9:10:09 AM
+MACHINE : 192.168.70.27 : , EMP NO : 742 , TIME : 3/15/2024 9:11:56 AM
+MACHINE : 192.168.70.27 : , EMP NO : 742 , TIME : 3/15/2024 9:11:58 AM
+MACHINE : 192.168.70.27 : , EMP NO : 660 , TIME : 3/15/2024 9:15:29 AM
+MACHINE : 192.168.70.27 : , EMP NO : 876 , TIME : 3/15/2024 9:15:57 AM
+MACHINE : 192.168.70.27 : , EMP NO : 775 , TIME : 3/15/2024 9:18:39 AM
+MACHINE : 192.168.70.27 : , EMP NO : 775 , TIME : 3/15/2024 9:18:41 AM
+MACHINE : 192.168.70.27 : , EMP NO : 301 , TIME : 3/15/2024 9:20:19 AM
+MACHINE : 192.168.70.27 : , EMP NO : 114 , TIME : 3/15/2024 9:20:28 AM
+MACHINE : 192.168.70.27 : , EMP NO : 114 , TIME : 3/15/2024 9:20:30 AM
+MACHINE : 192.168.70.27 : , EMP NO : 937 , TIME : 3/15/2024 9:40:21 AM
+MACHINE : 192.168.70.27 : , EMP NO : 937 , TIME : 3/15/2024 9:40:23 AM
+MACHINE : 192.168.70.27 : , EMP NO : 200 , TIME : 3/15/2024 9:51:03 AM
+MACHINE : 192.168.70.27 : , EMP NO : 200 , TIME : 3/15/2024 9:51:05 AM
+MACHINE : 192.168.70.27 : , EMP NO : 198 , TIME : 3/15/2024 10:12:58 AM
+MACHINE : 192.168.70.27 : , EMP NO : 198 , TIME : 3/15/2024 10:13:00 AM
+MACHINE : 192.168.70.27 : , EMP NO : 372 , TIME : 3/15/2024 10:14:15 AM
+MACHINE : 192.168.70.27 : , EMP NO : 372 , TIME : 3/15/2024 10:14:17 AM
+MACHINE : 2, TOTAL EMP : 60
+617--> Save in db
+192--> Save in db
+742--> Save in db
+937--> Save in db
+2123--> Save in db
+MACHINE : 192.168.10.13 : NOT CONNECTED
+MACHINE : 172.16.1.95 : NOT CONNECTED
+MACHINE : 172.16.1.96 : NOT CONNECTED
+MACHINE : 192.168.9.169 : , EMP NO : 10180 , TIME : 3/14/2024 10:25:51 AM
+MACHINE : 192.168.9.169 : , EMP NO : 2495 , TIME : 3/14/2024 10:31:38 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53931 , TIME : 3/14/2024 3:25:14 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10080 , TIME : 3/14/2024 3:36:03 PM
+MACHINE : 192.168.9.169 : , EMP NO : 813 , TIME : 3/14/2024 4:16:54 PM
+MACHINE : 192.168.9.169 : , EMP NO : 2677 , TIME : 3/14/2024 4:31:07 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9657 , TIME : 3/14/2024 4:32:25 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5312 , TIME : 3/14/2024 4:32:47 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10254 , TIME : 3/14/2024 4:34:33 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4499 , TIME : 3/14/2024 4:36:51 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10100 , TIME : 3/14/2024 4:36:58 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10128 , TIME : 3/14/2024 4:37:04 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10077 , TIME : 3/14/2024 4:37:09 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54765 , TIME : 3/14/2024 4:40:02 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4726 , TIME : 3/14/2024 4:40:07 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10073 , TIME : 3/14/2024 4:42:40 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5314 , TIME : 3/14/2024 4:51:54 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10180 , TIME : 3/14/2024 5:08:14 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54921 , TIME : 3/14/2024 5:09:03 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9651 , TIME : 3/14/2024 5:14:29 PM
+MACHINE : 192.168.9.169 : , EMP NO : 2495 , TIME : 3/14/2024 5:30:04 PM
+MACHINE : 192.168.9.169 : , EMP NO : 8937 , TIME : 3/14/2024 6:03:01 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54774 , TIME : 3/14/2024 6:06:33 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53704 , TIME : 3/14/2024 7:07:15 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54909 , TIME : 3/14/2024 7:08:28 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53880 , TIME : 3/14/2024 7:09:10 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54948 , TIME : 3/14/2024 7:45:11 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52430 , TIME : 3/14/2024 7:46:34 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53301 , TIME : 3/14/2024 7:48:55 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53950 , TIME : 3/14/2024 7:49:13 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54202 , TIME : 3/14/2024 7:49:55 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54223 , TIME : 3/14/2024 7:53:31 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54408 , TIME : 3/14/2024 7:53:37 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53026 , TIME : 3/14/2024 7:54:28 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54853 , TIME : 3/14/2024 7:54:32 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53672 , TIME : 3/14/2024 7:55:16 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52678 , TIME : 3/14/2024 7:55:20 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52971 , TIME : 3/14/2024 7:55:27 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54933 , TIME : 3/14/2024 7:56:10 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54889 , TIME : 3/14/2024 7:56:32 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52695 , TIME : 3/14/2024 7:56:43 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54846 , TIME : 3/14/2024 7:56:52 PM
+MACHINE : 192.168.9.169 : , EMP NO : 51984 , TIME : 3/14/2024 7:58:07 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54931 , TIME : 3/14/2024 7:58:50 PM
+MACHINE : 192.168.9.169 : , EMP NO : 4490 , TIME : 3/14/2024 7:58:56 PM
+MACHINE : 192.168.9.169 : , EMP NO : 8195 , TIME : 3/14/2024 7:59:03 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54729 , TIME : 3/14/2024 7:59:20 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54880 , TIME : 3/14/2024 7:59:29 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53027 , TIME : 3/14/2024 8:00:20 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9969 , TIME : 3/14/2024 8:01:37 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54758 , TIME : 3/14/2024 8:02:44 PM
+MACHINE : 192.168.9.169 : , EMP NO : 51985 , TIME : 3/14/2024 8:02:57 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53638 , TIME : 3/14/2024 8:03:09 PM
+MACHINE : 192.168.9.169 : , EMP NO : 51302 , TIME : 3/14/2024 8:05:31 PM
+MACHINE : 192.168.9.169 : , EMP NO : 52557 , TIME : 3/14/2024 8:05:42 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53405 , TIME : 3/14/2024 8:06:53 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53302 , TIME : 3/14/2024 8:07:05 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54515 , TIME : 3/14/2024 8:07:14 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54946 , TIME : 3/14/2024 8:07:19 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53886 , TIME : 3/14/2024 8:07:34 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53456 , TIME : 3/14/2024 8:07:41 PM
+MACHINE : 192.168.9.169 : , EMP NO : 53327 , TIME : 3/14/2024 8:10:12 PM
+MACHINE : 192.168.9.169 : , EMP NO : 54240 , TIME : 3/14/2024 8:12:51 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9920 , TIME : 3/14/2024 8:25:00 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9999 , TIME : 3/14/2024 8:41:38 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10235 , TIME : 3/14/2024 8:53:50 PM
+MACHINE : 192.168.9.169 : , EMP NO : 8159 , TIME : 3/14/2024 8:54:14 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10269 , TIME : 3/14/2024 8:55:55 PM
+MACHINE : 192.168.9.169 : , EMP NO : 5952 , TIME : 3/14/2024 8:59:26 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9446 , TIME : 3/14/2024 9:00:20 PM
+MACHINE : 192.168.9.169 : , EMP NO : 10335 , TIME : 3/14/2024 9:00:47 PM
+MACHINE : 192.168.9.169 : , EMP NO : 9651 , TIME : 3/15/2024 7:11:03 AM
+MACHINE : 192.168.9.169 : , EMP NO : 51984 , TIME : 3/15/2024 7:39:20 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54889 , TIME : 3/15/2024 7:40:03 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54933 , TIME : 3/15/2024 7:40:21 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52695 , TIME : 3/15/2024 7:40:28 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53886 , TIME : 3/15/2024 7:40:35 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53027 , TIME : 3/15/2024 7:43:11 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54758 , TIME : 3/15/2024 7:43:35 AM
+MACHINE : 192.168.9.169 : , EMP NO : 51302 , TIME : 3/15/2024 7:43:47 AM
+MACHINE : 192.168.9.169 : , EMP NO : 51985 , TIME : 3/15/2024 7:45:08 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53672 , TIME : 3/15/2024 7:45:17 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54515 , TIME : 3/15/2024 7:45:30 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53638 , TIME : 3/15/2024 7:45:57 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54931 , TIME : 3/15/2024 7:46:22 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4490 , TIME : 3/15/2024 7:46:52 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54240 , TIME : 3/15/2024 7:47:06 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54729 , TIME : 3/15/2024 7:47:18 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54853 , TIME : 3/15/2024 7:48:19 AM
+MACHINE : 192.168.9.169 : , EMP NO : 8195 , TIME : 3/15/2024 7:48:23 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52557 , TIME : 3/15/2024 7:50:04 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54880 , TIME : 3/15/2024 7:50:09 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54909 , TIME : 3/15/2024 7:53:39 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54946 , TIME : 3/15/2024 7:54:14 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53880 , TIME : 3/15/2024 7:55:48 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54800 , TIME : 3/15/2024 7:56:11 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52971 , TIME : 3/15/2024 7:56:16 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52430 , TIME : 3/15/2024 7:56:22 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54846 , TIME : 3/15/2024 7:57:05 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53327 , TIME : 3/15/2024 7:57:33 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52773 , TIME : 3/15/2024 7:57:38 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53302 , TIME : 3/15/2024 7:57:55 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54202 , TIME : 3/15/2024 7:58:06 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54775 , TIME : 3/15/2024 7:58:12 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53026 , TIME : 3/15/2024 7:58:38 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54435 , TIME : 3/15/2024 7:58:42 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54921 , TIME : 3/15/2024 7:58:47 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54543 , TIME : 3/15/2024 7:58:51 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53704 , TIME : 3/15/2024 7:59:02 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54550 , TIME : 3/15/2024 8:01:23 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54130 , TIME : 3/15/2024 8:01:38 AM
+MACHINE : 192.168.9.169 : , EMP NO : 52678 , TIME : 3/15/2024 8:02:19 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10080 , TIME : 3/15/2024 8:04:20 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53401 , TIME : 3/15/2024 8:05:50 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54948 , TIME : 3/15/2024 8:07:35 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53456 , TIME : 3/15/2024 8:07:41 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53931 , TIME : 3/15/2024 8:09:25 AM
+MACHINE : 192.168.9.169 : , EMP NO : 53301 , TIME : 3/15/2024 8:10:17 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9676 , TIME : 3/15/2024 8:22:15 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9920 , TIME : 3/15/2024 8:45:47 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10223 , TIME : 3/15/2024 8:48:12 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10335 , TIME : 3/15/2024 8:50:26 AM
+MACHINE : 192.168.9.169 : , EMP NO : 3989 , TIME : 3/15/2024 8:52:23 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9446 , TIME : 3/15/2024 8:52:30 AM
+MACHINE : 192.168.9.169 : , EMP NO : 2721 , TIME : 3/15/2024 8:53:11 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10269 , TIME : 3/15/2024 8:53:20 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4298 , TIME : 3/15/2024 8:53:58 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9999 , TIME : 3/15/2024 8:54:04 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5748 , TIME : 3/15/2024 8:54:12 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5312 , TIME : 3/15/2024 8:54:22 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10269 , TIME : 3/15/2024 8:54:27 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4528 , TIME : 3/15/2024 8:55:19 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9768 , TIME : 3/15/2024 8:56:02 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10354 , TIME : 3/15/2024 8:56:45 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9689 , TIME : 3/15/2024 8:56:50 AM
+MACHINE : 192.168.9.169 : , EMP NO : 8937 , TIME : 3/15/2024 8:58:48 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9870 , TIME : 3/15/2024 9:00:29 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5841 , TIME : 3/15/2024 9:00:34 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10100 , TIME : 3/15/2024 9:01:58 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10077 , TIME : 3/15/2024 9:02:18 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10128 , TIME : 3/15/2024 9:02:33 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4499 , TIME : 3/15/2024 9:03:08 AM
+MACHINE : 192.168.9.169 : , EMP NO : 813 , TIME : 3/15/2024 9:03:49 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10073 , TIME : 3/15/2024 9:03:56 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5952 , TIME : 3/15/2024 9:07:01 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9250 , TIME : 3/15/2024 9:07:28 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10254 , TIME : 3/15/2024 9:07:36 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4726 , TIME : 3/15/2024 9:08:06 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54774 , TIME : 3/15/2024 9:08:25 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9899 , TIME : 3/15/2024 9:08:42 AM
+MACHINE : 192.168.9.169 : , EMP NO : 10235 , TIME : 3/15/2024 9:10:20 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5314 , TIME : 3/15/2024 9:10:39 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9061 , TIME : 3/15/2024 9:11:33 AM
+MACHINE : 192.168.9.169 : , EMP NO : 5267 , TIME : 3/15/2024 9:11:46 AM
+MACHINE : 192.168.9.169 : , EMP NO : 9054 , TIME : 3/15/2024 9:11:52 AM
+MACHINE : 192.168.9.169 : , EMP NO : 54765 , TIME : 3/15/2024 9:14:20 AM
+MACHINE : 192.168.9.169 : , EMP NO : 3115 , TIME : 3/15/2024 9:16:01 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4596 , TIME : 3/15/2024 9:16:51 AM
+MACHINE : 192.168.9.169 : , EMP NO : 4486 , TIME : 3/15/2024 9:21:07 AM
+MACHINE : 192.168.9.169 : , EMP NO : 2495 , TIME : 3/15/2024 10:04:53 AM
+MACHINE : 6, TOTAL EMP : 244
+8728--> Save in db
+MACHINE : 192.168.52.16 : , EMP NO : 9611 , TIME : 3/14/2024 2:11:13 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9611 , TIME : 3/14/2024 2:11:14 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9611 , TIME : 3/14/2024 2:11:16 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1902 , TIME : 3/15/2024 8:38:16 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1902 , TIME : 3/15/2024 8:38:18 AM
+MACHINE : 192.168.52.16 : , EMP NO : 5448 , TIME : 3/15/2024 8:49:58 AM
+MACHINE : 192.168.52.16 : , EMP NO : 5448 , TIME : 3/15/2024 8:50:00 AM
+MACHINE : 192.168.52.16 : , EMP NO : 8981 , TIME : 3/15/2024 9:41:58 AM
+MACHINE : 192.168.52.16 : , EMP NO : 8981 , TIME : 3/15/2024 9:42:00 AM
+MACHINE : 192.168.52.16 : , EMP NO : 9359 , TIME : 3/15/2024 10:11:36 AM
+MACHINE : 192.168.52.16 : , EMP NO : 9359 , TIME : 3/15/2024 10:11:38 AM
+MACHINE : 7, TOTAL EMP : 502
+54685--> Save in db
+3777--> Save in db
+9918--> Save in db
+MACHINE : 192.168.52.17 : NO DATA
+--Service is stopped at 3/15/2024 10:25:11 AM
diff --git a/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_6_2024.txt b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_6_2024.txt
new file mode 100644
index 0000000..da07479
--- /dev/null
+++ b/DevicePolling/bin/Debug/Logs/ZKTECOAttendanceServiceLog_3_6_2024.txt
@@ -0,0 +1,511 @@
+--Service is started at 3/6/2024 9:35:36 AM
+--Service is stopped at 3/6/2024 9:35:40 AM
+--Service is started at 3/6/2024 9:36:08 AM
+--Service is started at 3/6/2024 9:37:38 AM
+MACHINE : 192.168.52.16 : , EMP NO : 470 , TIME : 2/22/2024 11:16:16 AM
+MACHINE : 192.168.52.16 : , EMP NO : 470 , TIME : 2/22/2024 11:16:17 AM
+MACHINE : 192.168.52.16 : , EMP NO : 470 , TIME : 2/22/2024 11:16:19 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4458 , TIME : 2/23/2024 4:23:26 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4458 , TIME : 2/23/2024 4:23:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4458 , TIME : 2/23/2024 4:23:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 10372 , TIME : 2/23/2024 4:27:47 PM
+MACHINE : 192.168.52.16 : , EMP NO : 10372 , TIME : 2/23/2024 4:27:49 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54455 , TIME : 2/27/2024 7:47:27 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54455 , TIME : 2/27/2024 7:47:29 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54455 , TIME : 2/27/2024 7:47:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54455 , TIME : 2/27/2024 7:47:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54273 , TIME : 2/28/2024 5:14:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54273 , TIME : 2/28/2024 5:14:35 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5435 , TIME : 2/28/2024 5:14:42 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5435 , TIME : 2/28/2024 5:14:44 PM
+MACHINE : 192.168.52.16 : , EMP NO : 3165 , TIME : 2/28/2024 5:14:49 PM
+MACHINE : 192.168.52.16 : , EMP NO : 3165 , TIME : 2/28/2024 5:14:50 PM
+MACHINE : 192.168.52.16 : , EMP NO : 8555 , TIME : 2/28/2024 5:21:44 PM
+MACHINE : 192.168.52.16 : , EMP NO : 8555 , TIME : 2/28/2024 5:21:46 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 2/28/2024 7:46:44 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 2/28/2024 7:46:47 PM
+Duplicate entry '2024-02-28 19:46:49-54303' for key 'attendance_log.PRIMARY'
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 2/28/2024 7:46:51 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4203 , TIME : 2/29/2024 7:54:16 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 2/29/2024 9:07:16 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 2/29/2024 9:07:18 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 2/29/2024 9:07:20 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570062 , TIME : 2/29/2024 11:07:11 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570062 , TIME : 2/29/2024 11:07:13 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570065 , TIME : 2/29/2024 11:07:19 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570065 , TIME : 2/29/2024 11:07:21 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570065 , TIME : 2/29/2024 11:07:23 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570065 , TIME : 2/29/2024 11:07:25 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570065 , TIME : 2/29/2024 11:07:27 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570079 , TIME : 2/29/2024 11:37:59 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570079 , TIME : 2/29/2024 11:38:01 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1524198 , TIME : 2/29/2024 12:22:05 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1524198 , TIME : 2/29/2024 12:22:07 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4830 , TIME : 2/29/2024 3:48:03 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4830 , TIME : 2/29/2024 3:48:05 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1475 , TIME : 2/29/2024 4:21:10 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1475 , TIME : 2/29/2024 4:21:12 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9548 , TIME : 2/29/2024 4:36:06 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9548 , TIME : 2/29/2024 4:36:08 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570062 , TIME : 2/29/2024 5:59:21 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570062 , TIME : 2/29/2024 5:59:23 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570065 , TIME : 2/29/2024 5:59:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570065 , TIME : 2/29/2024 5:59:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 10206 , TIME : 2/29/2024 6:00:32 PM
+MACHINE : 192.168.52.16 : , EMP NO : 10206 , TIME : 2/29/2024 6:00:46 PM
+MACHINE : 192.168.52.16 : , EMP NO : 10206 , TIME : 2/29/2024 6:00:56 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 2/29/2024 7:08:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 2/29/2024 7:08:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 2/29/2024 7:08:52 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 2/29/2024 7:08:54 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 2/29/2024 7:08:58 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 2/29/2024 7:09:00 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 2/29/2024 7:09:05 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 2/29/2024 7:09:11 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 2/29/2024 7:43:00 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 2/29/2024 7:43:02 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 2/29/2024 7:43:05 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 2/29/2024 7:43:07 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 2/29/2024 7:43:19 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 2/29/2024 7:43:21 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54384 , TIME : 2/29/2024 7:45:48 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54384 , TIME : 2/29/2024 7:45:50 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54384 , TIME : 2/29/2024 7:45:52 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53338 , TIME : 2/29/2024 7:45:55 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53338 , TIME : 2/29/2024 7:45:57 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53338 , TIME : 2/29/2024 7:45:59 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5239 , TIME : 2/29/2024 7:51:09 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5239 , TIME : 2/29/2024 7:51:11 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5239 , TIME : 2/29/2024 7:51:13 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 2/29/2024 7:54:46 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 2/29/2024 7:54:48 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 2/29/2024 7:54:50 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 2/29/2024 7:56:56 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 2/29/2024 7:56:58 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 2/29/2024 7:57:00 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54388 , TIME : 2/29/2024 8:01:27 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54388 , TIME : 2/29/2024 8:01:29 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54388 , TIME : 2/29/2024 8:01:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 2/29/2024 8:08:13 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 2/29/2024 8:08:15 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 2/29/2024 8:08:17 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 2/29/2024 8:12:17 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 2/29/2024 8:12:19 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 2/29/2024 8:12:21 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/1/2024 6:54:03 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/1/2024 6:54:05 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/1/2024 6:54:24 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/1/2024 6:54:26 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/1/2024 6:54:27 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/1/2024 6:54:31 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/1/2024 6:54:33 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/1/2024 6:56:05 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/1/2024 6:56:06 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/1/2024 6:56:11 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/1/2024 7:02:41 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/1/2024 7:02:42 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/1/2024 7:02:44 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/1/2024 7:05:41 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/1/2024 7:05:43 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 8:06:30 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 8:06:32 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 8:06:34 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 8:06:35 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 8:06:39 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 8:06:44 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 8:06:46 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54244 , TIME : 3/1/2024 8:14:26 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54244 , TIME : 3/1/2024 8:14:30 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54244 , TIME : 3/1/2024 8:14:31 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54822 , TIME : 3/1/2024 8:14:39 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54822 , TIME : 3/1/2024 8:14:41 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54822 , TIME : 3/1/2024 8:14:43 AM
+MACHINE : 192.168.52.16 : , EMP NO : 5214 , TIME : 3/1/2024 8:19:33 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54267 , TIME : 3/1/2024 8:22:59 AM
+MACHINE : 192.168.52.16 : , EMP NO : 54267 , TIME : 3/1/2024 8:23:01 AM
+MACHINE : 192.168.52.16 : , EMP NO : 8915 , TIME : 3/1/2024 8:23:04 AM
+MACHINE : 192.168.52.16 : , EMP NO : 8915 , TIME : 3/1/2024 8:23:06 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3561 , TIME : 3/1/2024 8:42:03 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3561 , TIME : 3/1/2024 8:42:05 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3255 , TIME : 3/1/2024 8:43:46 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3255 , TIME : 3/1/2024 8:43:48 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3255 , TIME : 3/1/2024 8:43:50 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1475 , TIME : 3/1/2024 8:54:11 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1475 , TIME : 3/1/2024 8:54:13 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1475 , TIME : 3/1/2024 8:54:15 AM
+MACHINE : 192.168.52.16 : , EMP NO : 5239 , TIME : 3/1/2024 9:02:51 AM
+MACHINE : 192.168.52.16 : , EMP NO : 5239 , TIME : 3/1/2024 9:02:53 AM
+MACHINE : 192.168.52.16 : , EMP NO : 5239 , TIME : 3/1/2024 9:02:55 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3343 , TIME : 3/1/2024 9:28:39 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3343 , TIME : 3/1/2024 9:28:43 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3343 , TIME : 3/1/2024 9:28:44 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3343 , TIME : 3/1/2024 9:28:46 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1524198 , TIME : 3/1/2024 6:00:09 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1524198 , TIME : 3/1/2024 6:00:11 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5239 , TIME : 3/1/2024 6:33:12 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5239 , TIME : 3/1/2024 6:33:13 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1524198 , TIME : 3/1/2024 6:59:51 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1524198 , TIME : 3/1/2024 6:59:53 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/1/2024 7:27:01 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/1/2024 7:27:03 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/1/2024 7:27:27 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/1/2024 7:27:29 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/1/2024 7:27:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/1/2024 7:27:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/1/2024 7:27:35 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/1/2024 7:27:41 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/1/2024 7:27:43 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/1/2024 7:27:46 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/1/2024 7:27:47 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/1/2024 7:35:57 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/1/2024 7:35:58 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 7:46:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 7:46:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 7:46:40 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 7:47:02 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 7:47:04 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/1/2024 7:47:08 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/1/2024 7:56:27 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/1/2024 7:56:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/1/2024 7:56:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/1/2024 7:56:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/1/2024 7:56:35 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570091 , TIME : 3/1/2024 7:57:24 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570091 , TIME : 3/1/2024 7:57:26 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570091 , TIME : 3/1/2024 7:57:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 3/1/2024 8:07:19 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 3/1/2024 8:07:21 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54390 , TIME : 3/1/2024 8:07:23 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54384 , TIME : 3/1/2024 8:10:34 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54384 , TIME : 3/1/2024 8:10:36 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54267 , TIME : 3/1/2024 8:12:02 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54267 , TIME : 3/1/2024 8:12:04 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54267 , TIME : 3/1/2024 8:12:06 PM
+MACHINE : 192.168.52.16 : , EMP NO : 10119 , TIME : 3/1/2024 8:12:24 PM
+MACHINE : 192.168.52.16 : , EMP NO : 10119 , TIME : 3/1/2024 8:12:26 PM
+MACHINE : 192.168.52.16 : , EMP NO : 10119 , TIME : 3/1/2024 8:12:27 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570091 , TIME : 3/1/2024 10:49:52 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570091 , TIME : 3/1/2024 10:49:55 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570091 , TIME : 3/1/2024 10:49:57 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570091 , TIME : 3/1/2024 10:49:59 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/2/2024 6:18:19 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/2/2024 6:18:21 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/2/2024 6:18:52 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/2/2024 6:18:54 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/2/2024 6:19:23 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/2/2024 6:19:25 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/2/2024 6:30:04 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/2/2024 6:30:06 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/2/2024 6:54:14 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/2/2024 6:54:16 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/2/2024 6:54:19 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/2/2024 6:54:21 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/2/2024 6:54:27 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/2/2024 6:54:29 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/2/2024 6:54:31 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/2/2024 6:59:31 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/2/2024 6:59:32 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/2/2024 7:35:47 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/2/2024 7:35:50 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/2/2024 7:35:52 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/2/2024 7:35:54 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/2/2024 7:35:56 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/2/2024 7:35:58 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/2/2024 7:36:08 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/2/2024 7:43:11 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/2/2024 7:43:14 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/2/2024 7:43:16 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/2/2024 7:43:20 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/2/2024 7:43:22 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54331 , TIME : 3/2/2024 7:46:10 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54331 , TIME : 3/2/2024 7:46:13 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54331 , TIME : 3/2/2024 7:46:15 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54384 , TIME : 3/2/2024 8:02:17 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54384 , TIME : 3/2/2024 8:02:19 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/2/2024 8:03:23 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/2/2024 8:03:25 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/2/2024 8:23:46 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/2/2024 8:23:48 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/3/2024 7:07:33 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/3/2024 7:07:35 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/3/2024 7:07:37 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/3/2024 7:09:38 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/3/2024 7:09:40 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/3/2024 7:09:44 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/3/2024 7:10:02 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/3/2024 7:11:24 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/3/2024 7:11:26 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570077 , TIME : 3/3/2024 7:11:39 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/3/2024 7:11:51 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/3/2024 7:53:59 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/3/2024 7:54:01 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/3/2024 7:54:06 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/3/2024 7:54:08 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/3/2024 7:54:20 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/3/2024 7:54:22 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/3/2024 7:54:24 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/3/2024 7:58:32 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/3/2024 7:58:33 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/3/2024 7:58:35 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3457 , TIME : 3/3/2024 10:04:03 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3457 , TIME : 3/3/2024 6:26:47 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/3/2024 7:20:24 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/3/2024 7:20:25 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/3/2024 7:20:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/3/2024 7:22:21 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/3/2024 7:22:23 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/3/2024 7:22:26 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54269 , TIME : 3/3/2024 7:28:42 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54269 , TIME : 3/3/2024 7:28:44 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53756 , TIME : 3/3/2024 7:46:51 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53756 , TIME : 3/3/2024 7:46:57 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53756 , TIME : 3/3/2024 7:46:59 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/3/2024 8:00:07 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/3/2024 8:00:09 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/3/2024 8:00:11 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/3/2024 8:03:29 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/3/2024 8:03:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/3/2024 8:08:22 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/3/2024 8:08:23 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54267 , TIME : 3/3/2024 8:17:02 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54267 , TIME : 3/3/2024 8:17:04 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54267 , TIME : 3/3/2024 8:17:06 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1771 , TIME : 3/3/2024 8:17:15 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1771 , TIME : 3/3/2024 8:17:17 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/4/2024 6:09:41 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/4/2024 6:09:43 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/4/2024 6:09:45 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/4/2024 6:37:41 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/4/2024 6:37:43 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/4/2024 6:40:39 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/4/2024 6:40:41 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/4/2024 6:40:43 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/4/2024 6:40:44 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/4/2024 6:42:01 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/4/2024 6:42:03 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/4/2024 6:42:17 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/4/2024 6:42:19 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/4/2024 6:42:22 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/4/2024 6:44:56 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/4/2024 6:44:58 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/4/2024 8:00:41 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/4/2024 8:00:43 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/4/2024 8:00:47 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/4/2024 8:00:51 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/4/2024 8:04:59 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/4/2024 8:12:21 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/4/2024 8:12:23 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 3/4/2024 8:16:41 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 3/4/2024 8:16:43 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 3/4/2024 8:16:45 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/5/2024 6:11:31 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/5/2024 6:11:33 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/5/2024 6:11:35 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/5/2024 6:56:51 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/5/2024 6:56:53 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/5/2024 6:56:57 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/5/2024 6:57:02 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/5/2024 6:57:04 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/5/2024 6:57:11 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/5/2024 6:57:13 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4730 , TIME : 3/5/2024 7:57:50 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4730 , TIME : 3/5/2024 7:57:52 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/5/2024 8:02:54 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/5/2024 8:02:57 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/5/2024 8:02:59 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/5/2024 8:03:06 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/5/2024 8:03:08 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/5/2024 8:03:10 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/5/2024 8:03:12 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4239 , TIME : 3/5/2024 8:05:05 AM
+MACHINE : 192.168.52.16 : , EMP NO : 8915 , TIME : 3/5/2024 8:19:07 AM
+MACHINE : 192.168.52.16 : , EMP NO : 8915 , TIME : 3/5/2024 8:19:09 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55101 , TIME : 3/5/2024 1:16:08 PM
+MACHINE : 192.168.52.16 : , EMP NO : 470 , TIME : 3/5/2024 3:53:04 PM
+MACHINE : 192.168.52.16 : , EMP NO : 470 , TIME : 3/5/2024 3:53:06 PM
+MACHINE : 192.168.52.16 : , EMP NO : 470 , TIME : 3/5/2024 3:53:07 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/5/2024 7:37:13 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570071 , TIME : 3/5/2024 7:37:15 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/5/2024 7:37:18 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570075 , TIME : 3/5/2024 7:37:23 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570076 , TIME : 3/5/2024 7:37:27 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/5/2024 7:48:41 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570100 , TIME : 3/5/2024 7:48:42 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 3/5/2024 7:57:29 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 3/5/2024 7:57:31 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54303 , TIME : 3/5/2024 7:57:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/5/2024 8:03:29 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1563 , TIME : 3/5/2024 8:04:21 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1563 , TIME : 3/5/2024 8:04:23 PM
+MACHINE : 192.168.52.16 : , EMP NO : 2986 , TIME : 3/5/2024 8:05:09 PM
+MACHINE : 192.168.52.16 : , EMP NO : 2986 , TIME : 3/5/2024 8:05:11 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1966 , TIME : 3/5/2024 8:06:04 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1966 , TIME : 3/5/2024 8:06:06 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1568039 , TIME : 3/5/2024 8:14:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1568039 , TIME : 3/5/2024 8:14:37 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4442 , TIME : 3/5/2024 8:16:33 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4442 , TIME : 3/5/2024 8:16:35 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4442 , TIME : 3/5/2024 8:16:37 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5980 , TIME : 3/5/2024 8:17:26 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5980 , TIME : 3/5/2024 8:17:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 3912 , TIME : 3/5/2024 8:21:44 PM
+MACHINE : 192.168.52.16 : , EMP NO : 3912 , TIME : 3/5/2024 8:21:46 PM
+MACHINE : 192.168.52.16 : , EMP NO : 3612 , TIME : 3/5/2024 8:21:51 PM
+MACHINE : 192.168.52.16 : , EMP NO : 3612 , TIME : 3/5/2024 8:21:53 PM
+MACHINE : 192.168.52.16 : , EMP NO : 3534 , TIME : 3/5/2024 8:24:17 PM
+MACHINE : 192.168.52.16 : , EMP NO : 3534 , TIME : 3/5/2024 8:24:19 PM
+MACHINE : 192.168.52.16 : , EMP NO : 8915 , TIME : 3/5/2024 8:25:47 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5490 , TIME : 3/5/2024 8:27:39 PM
+MACHINE : 192.168.52.16 : , EMP NO : 5490 , TIME : 3/5/2024 8:27:41 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53606 , TIME : 3/5/2024 8:28:38 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53606 , TIME : 3/5/2024 8:28:40 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53889 , TIME : 3/5/2024 8:29:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54719 , TIME : 3/5/2024 8:30:29 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54719 , TIME : 3/5/2024 8:30:30 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54908 , TIME : 3/5/2024 8:31:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54908 , TIME : 3/5/2024 8:31:30 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/5/2024 8:31:44 PM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/5/2024 8:31:47 PM
+MACHINE : 192.168.52.16 : , EMP NO : 55074 , TIME : 3/5/2024 8:32:50 PM
+MACHINE : 192.168.52.16 : , EMP NO : 55074 , TIME : 3/5/2024 8:32:52 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53841 , TIME : 3/5/2024 8:37:19 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53841 , TIME : 3/5/2024 8:37:21 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54709 , TIME : 3/5/2024 8:39:40 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54709 , TIME : 3/5/2024 8:39:42 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54750 , TIME : 3/5/2024 8:40:36 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54750 , TIME : 3/5/2024 8:40:38 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54998 , TIME : 3/5/2024 8:41:26 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54998 , TIME : 3/5/2024 8:41:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54803 , TIME : 3/5/2024 8:42:20 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54803 , TIME : 3/5/2024 8:42:22 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53731 , TIME : 3/5/2024 8:43:10 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53731 , TIME : 3/5/2024 8:43:12 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53757 , TIME : 3/5/2024 8:44:00 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53757 , TIME : 3/5/2024 8:44:02 PM
+MACHINE : 192.168.52.16 : , EMP NO : 55016 , TIME : 3/5/2024 8:44:51 PM
+MACHINE : 192.168.52.16 : , EMP NO : 55016 , TIME : 3/5/2024 8:44:53 PM
+MACHINE : 192.168.52.16 : , EMP NO : 52109 , TIME : 3/5/2024 8:45:56 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54848 , TIME : 3/5/2024 8:46:42 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54848 , TIME : 3/5/2024 8:46:44 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54707 , TIME : 3/5/2024 8:47:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54707 , TIME : 3/5/2024 8:47:30 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54904 , TIME : 3/5/2024 8:48:15 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54904 , TIME : 3/5/2024 8:48:17 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9931 , TIME : 3/5/2024 8:49:01 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9931 , TIME : 3/5/2024 8:49:02 PM
+MACHINE : 192.168.52.16 : , EMP NO : 55091 , TIME : 3/5/2024 8:49:56 PM
+MACHINE : 192.168.52.16 : , EMP NO : 55091 , TIME : 3/5/2024 8:49:58 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53718 , TIME : 3/5/2024 8:50:42 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53718 , TIME : 3/5/2024 8:50:44 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9027 , TIME : 3/5/2024 8:51:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9027 , TIME : 3/5/2024 8:51:30 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4141 , TIME : 3/5/2024 8:52:12 PM
+MACHINE : 192.168.52.16 : , EMP NO : 4141 , TIME : 3/5/2024 8:52:14 PM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/5/2024 8:52:52 PM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/5/2024 8:52:54 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53688 , TIME : 3/5/2024 8:53:38 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53688 , TIME : 3/5/2024 8:53:40 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53890 , TIME : 3/5/2024 8:54:28 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53890 , TIME : 3/5/2024 8:54:30 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53978 , TIME : 3/5/2024 8:55:17 PM
+MACHINE : 192.168.52.16 : , EMP NO : 53978 , TIME : 3/5/2024 8:55:18 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54583 , TIME : 3/5/2024 8:56:35 PM
+MACHINE : 192.168.52.16 : , EMP NO : 54583 , TIME : 3/5/2024 8:56:37 PM
+MACHINE : 192.168.52.16 : , EMP NO : 9931 , TIME : 3/6/2024 4:06:25 AM
+MACHINE : 192.168.52.16 : , EMP NO : 9931 , TIME : 3/6/2024 4:06:27 AM
+MACHINE : 192.168.52.16 : , EMP NO : 9931 , TIME : 3/6/2024 4:06:29 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3612 , TIME : 3/6/2024 6:01:45 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3612 , TIME : 3/6/2024 6:01:46 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3612 , TIME : 3/6/2024 6:01:48 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/6/2024 6:39:51 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570069 , TIME : 3/6/2024 6:39:53 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4442 , TIME : 3/6/2024 7:12:28 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4442 , TIME : 3/6/2024 7:12:30 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4442 , TIME : 3/6/2024 7:12:32 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3534 , TIME : 3/6/2024 7:12:35 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3534 , TIME : 3/6/2024 7:12:36 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3534 , TIME : 3/6/2024 7:12:38 AM
+MACHINE : 192.168.52.16 : , EMP NO : 3534 , TIME : 3/6/2024 7:12:40 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4742 , TIME : 3/6/2024 7:51:02 AM
+MACHINE : 192.168.52.16 : , EMP NO : 4742 , TIME : 3/6/2024 7:51:04 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/6/2024 8:01:33 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/6/2024 8:01:35 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/6/2024 8:01:37 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55088 , TIME : 3/6/2024 8:01:46 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/6/2024 8:22:30 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570074 , TIME : 3/6/2024 8:22:32 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/6/2024 9:19:32 AM
+MACHINE : 192.168.52.16 : , EMP NO : 1570059 , TIME : 3/6/2024 9:19:34 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55104 , TIME : 3/6/2024 9:20:48 AM
+MACHINE : 192.168.52.16 : , EMP NO : 55104 , TIME : 3/6/2024 9:20:50 AM
+MACHINE : 192.168.52.16 : , EMP NO : 2533 , TIME : 3/6/2024 9:23:45 AM
+MACHINE : 192.168.52.16 : , EMP NO : 2533 , TIME : 3/6/2024 9:23:46 AM
+MACHINE : 192.168.52.16 : , EMP NO : 2533 , TIME : 3/6/2024 9:23:49 AM
+MACHINE : 192.168.52.16 : , EMP NO : 2533 , TIME : 3/6/2024 9:23:51 AM
+MACHINE : 7, TOTAL EMP : 317
+--Service is stopped at 3/6/2024 9:41:32 AM
+--Service is started at 3/6/2024 9:41:57 AM
+MACHINE : 192.168.52.17 : NOT CONNECTED
+--Service is stopped at 3/6/2024 9:42:25 AM
+--Service is started at 3/6/2024 10:16:23 AM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/22/2024 1:01:52 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/22/2024 1:01:54 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/22/2024 1:01:57 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/22/2024 1:02:14 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/22/2024 1:02:17 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/22/2024 1:04:53 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/22/2024 1:06:56 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/22/2024 1:07:10 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/22/2024 1:08:05 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/22/2024 1:09:55 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/22/2024 1:09:57 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/22/2024 1:15:41 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/22/2024 1:15:43 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/22/2024 4:35:52 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/22/2024 4:35:53 PM
+MACHINE : 192.168.52.17 : , EMP NO : 4789 , TIME : 2/23/2024 3:45:49 PM
+MACHINE : 192.168.52.17 : , EMP NO : 4789 , TIME : 2/23/2024 3:45:51 PM
+MACHINE : 192.168.52.17 : , EMP NO : 9991 , TIME : 2/23/2024 3:47:54 PM
+MACHINE : 192.168.52.17 : , EMP NO : 9991 , TIME : 2/23/2024 3:47:56 PM
+MACHINE : 192.168.52.17 : , EMP NO : 5625 , TIME : 2/23/2024 3:59:25 PM
+MACHINE : 192.168.52.17 : , EMP NO : 5625 , TIME : 2/23/2024 3:59:27 PM
+MACHINE : 192.168.52.17 : , EMP NO : 5625 , TIME : 2/23/2024 3:59:29 PM
+MACHINE : 192.168.52.17 : , EMP NO : 10002 , TIME : 2/23/2024 4:04:37 PM
+MACHINE : 192.168.52.17 : , EMP NO : 10002 , TIME : 2/23/2024 4:04:39 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/23/2024 4:06:10 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/23/2024 4:06:12 PM
+MACHINE : 192.168.52.17 : , EMP NO : 54688 , TIME : 2/23/2024 4:26:50 PM
+MACHINE : 192.168.52.17 : , EMP NO : 54688 , TIME : 2/23/2024 4:26:52 PM
+MACHINE : 192.168.52.17 : , EMP NO : 10343 , TIME : 2/23/2024 4:37:12 PM
+MACHINE : 192.168.52.17 : , EMP NO : 10343 , TIME : 2/23/2024 4:37:13 PM
+MACHINE : 192.168.52.17 : , EMP NO : 10343 , TIME : 2/23/2024 4:37:15 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 2/23/2024 5:02:45 PM
+MACHINE : 192.168.52.17 : , EMP NO : 54755 , TIME : 2/23/2024 5:18:48 PM
+MACHINE : 192.168.52.17 : , EMP NO : 54755 , TIME : 2/23/2024 5:18:50 PM
+MACHINE : 192.168.52.17 : , EMP NO : 52215 , TIME : 2/26/2024 3:50:52 PM
+MACHINE : 192.168.52.17 : , EMP NO : 52215 , TIME : 2/26/2024 3:50:54 PM
+MACHINE : 192.168.52.17 : , EMP NO : 52215 , TIME : 2/26/2024 3:50:56 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8679 , TIME : 2/27/2024 7:49:01 AM
+MACHINE : 192.168.52.17 : , EMP NO : 8679 , TIME : 2/27/2024 7:49:03 AM
+MACHINE : 192.168.52.17 : , EMP NO : 8679 , TIME : 2/27/2024 7:49:05 AM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 2/29/2024 1:19:10 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8679 , TIME : 3/1/2024 7:48:23 AM
+MACHINE : 192.168.52.17 : , EMP NO : 8679 , TIME : 3/1/2024 7:48:25 AM
+MACHINE : 192.168.52.17 : , EMP NO : 8679 , TIME : 3/1/2024 7:48:27 AM
+MACHINE : 192.168.52.17 : , EMP NO : 9611 , TIME : 3/1/2024 7:48:31 AM
+MACHINE : 192.168.52.17 : , EMP NO : 9611 , TIME : 3/1/2024 7:48:33 AM
+MACHINE : 192.168.52.17 : , EMP NO : 8679 , TIME : 3/2/2024 8:00:07 AM
+MACHINE : 192.168.52.17 : , EMP NO : 9611 , TIME : 3/3/2024 8:09:16 AM
+MACHINE : 192.168.52.17 : , EMP NO : 9611 , TIME : 3/3/2024 8:09:18 AM
+MACHINE : 192.168.52.17 : , EMP NO : 9611 , TIME : 3/3/2024 8:09:19 AM
+MACHINE : 192.168.52.17 : , EMP NO : 9611 , TIME : 3/4/2024 7:59:39 AM
+MACHINE : 192.168.52.17 : , EMP NO : 9611 , TIME : 3/4/2024 7:59:41 AM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 3/5/2024 12:26:35 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 3/5/2024 3:41:29 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 3/5/2024 3:41:40 PM
+MACHINE : 192.168.52.17 : , EMP NO : 8467 , TIME : 3/5/2024 3:42:02 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 3/5/2024 3:52:04 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 3/5/2024 3:52:06 PM
+MACHINE : 192.168.52.17 : , EMP NO : 470 , TIME : 3/5/2024 3:52:07 PM
+MACHINE : 8, TOTAL EMP : 62
+--Service is stopped at 3/6/2024 10:17:09 AM
diff --git a/DevicePolling/bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll b/DevicePolling/bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000..abe9406
Binary files /dev/null and b/DevicePolling/bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/DevicePolling/bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml b/DevicePolling/bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml
new file mode 100644
index 0000000..cb1744f
--- /dev/null
+++ b/DevicePolling/bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml
@@ -0,0 +1,223 @@
+
+
+
+ Microsoft.Bcl.AsyncInterfaces
+
+
+
+ Provides the core logic for implementing a manual-reset or .
+
+
+
+
+ The callback to invoke when the operation completes if was called before the operation completed,
+ or if the operation completed before a callback was supplied,
+ or null if a callback hasn't yet been provided and the operation hasn't yet completed.
+
+
+
+ State to pass to .
+
+
+ to flow to the callback, or null if no flowing is required.
+
+
+
+ A "captured" or with which to invoke the callback,
+ or null if no special context is required.
+
+
+
+ Whether the current operation has completed.
+
+
+ The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.
+
+
+ The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.
+
+
+ The current version of this value, used to help prevent misuse.
+
+
+ Gets or sets whether to force continuations to run asynchronously.
+ Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.
+
+
+ Resets to prepare for the next operation.
+
+
+ Completes with a successful result.
+ The result.
+
+
+ Complets with an error.
+
+
+
+ Gets the operation version.
+
+
+ Gets the status of the operation.
+ Opaque value that was provided to the 's constructor.
+
+
+ Gets the result of the operation.
+ Opaque value that was provided to the 's constructor.
+
+
+ Schedules the continuation action for this operation.
+ The continuation to invoke when the operation has completed.
+ The state object to pass to when it's invoked.
+ Opaque value that was provided to the 's constructor.
+ The flags describing the behavior of the continuation.
+
+
+ Ensures that the specified token matches the current version.
+ The token supplied by .
+
+
+ Signals that the operation has completed. Invoked after the result or error has been set.
+
+
+
+ Invokes the continuation with the appropriate captured context / scheduler.
+ This assumes that if is not null we're already
+ running within that .
+
+
+
+ Provides a set of static methods for configuring -related behaviors on asynchronous enumerables and disposables.
+
+
+ Configures how awaits on the tasks returned from an async disposable will be performed.
+ The source async disposable.
+ Whether to capture and marshal back to the current context.
+ The configured async disposable.
+
+
+ Configures how awaits on the tasks returned from an async iteration will be performed.
+ The type of the objects being iterated.
+ The source enumerable being iterated.
+ Whether to capture and marshal back to the current context.
+ The configured enumerable.
+
+
+ Sets the to be passed to when iterating.
+ The type of the objects being iterated.
+ The source enumerable being iterated.
+ The to use.
+ The configured enumerable.
+
+
+ Represents a builder for asynchronous iterators.
+
+
+ Creates an instance of the struct.
+ The initialized instance.
+
+
+ Invokes on the state machine while guarding the .
+ The type of the state machine.
+ The state machine instance, passed by reference.
+
+
+ Schedules the state machine to proceed to the next action when the specified awaiter completes.
+ The type of the awaiter.
+ The type of the state machine.
+ The awaiter.
+ The state machine.
+
+
+ Schedules the state machine to proceed to the next action when the specified awaiter completes.
+ The type of the awaiter.
+ The type of the state machine.
+ The awaiter.
+ The state machine.
+
+
+ Marks iteration as being completed, whether successfully or otherwise.
+
+
+ Gets an object that may be used to uniquely identify this builder to the debugger.
+
+
+ Indicates whether a method is an asynchronous iterator.
+
+
+ Initializes a new instance of the class.
+ The type object for the underlying state machine type that's used to implement a state machine method.
+
+
+ Provides a type that can be used to configure how awaits on an are performed.
+
+
+ Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.
+
+
+ Configures how awaits on the tasks returned from an async iteration will be performed.
+ Whether to capture and marshal back to the current context.
+ The configured enumerable.
+ This will replace any previous value set by for this iteration.
+
+
+ Sets the to be passed to when iterating.
+ The to use.
+ The configured enumerable.
+ This will replace any previous set by for this iteration.
+
+
+ Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.
+
+
+ Advances the enumerator asynchronously to the next element of the collection.
+
+ A that will complete with a result of true
+ if the enumerator was successfully advanced to the next element, or false if the enumerator has
+ passed the end of the collection.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or
+ resetting unmanaged resources asynchronously.
+
+
+
+ Exposes an enumerator that provides asynchronous iteration over values of a specified type.
+ The type of values to enumerate.
+
+
+ Returns an enumerator that iterates asynchronously through the collection.
+ A that may be used to cancel the asynchronous iteration.
+ An enumerator that can be used to iterate asynchronously through the collection.
+
+
+ Supports a simple asynchronous iteration over a generic collection.
+ The type of objects to enumerate.
+
+
+ Advances the enumerator asynchronously to the next element of the collection.
+
+ A that will complete with a result of true if the enumerator
+ was successfully advanced to the next element, or false if the enumerator has passed the end
+ of the collection.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+
+ Provides a mechanism for releasing unmanaged resources asynchronously.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or
+ resetting unmanaged resources asynchronously.
+
+
+
+
diff --git a/DevicePolling/bin/Debug/MySql.Data.dll b/DevicePolling/bin/Debug/MySql.Data.dll
new file mode 100644
index 0000000..2285eac
Binary files /dev/null and b/DevicePolling/bin/Debug/MySql.Data.dll differ
diff --git a/DevicePolling/bin/Debug/MySql.Data.xml b/DevicePolling/bin/Debug/MySql.Data.xml
new file mode 100644
index 0000000..a4b2746
--- /dev/null
+++ b/DevicePolling/bin/Debug/MySql.Data.xml
@@ -0,0 +1,18611 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the Fido callback.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt..
+
+
+
+
+ Looks up a localized string similar to An event handler for FidoActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/DevicePolling/bin/Debug/System.Buffers.dll b/DevicePolling/bin/Debug/System.Buffers.dll
new file mode 100644
index 0000000..f2d83c5
Binary files /dev/null and b/DevicePolling/bin/Debug/System.Buffers.dll differ
diff --git a/DevicePolling/bin/Debug/System.Buffers.xml b/DevicePolling/bin/Debug/System.Buffers.xml
new file mode 100644
index 0000000..e243dce
--- /dev/null
+++ b/DevicePolling/bin/Debug/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/DevicePolling/bin/Debug/System.Configuration.ConfigurationManager.dll b/DevicePolling/bin/Debug/System.Configuration.ConfigurationManager.dll
new file mode 100644
index 0000000..58530a4
Binary files /dev/null and b/DevicePolling/bin/Debug/System.Configuration.ConfigurationManager.dll differ
diff --git a/DevicePolling/bin/Debug/System.Diagnostics.DiagnosticSource.dll b/DevicePolling/bin/Debug/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000..1786b54
Binary files /dev/null and b/DevicePolling/bin/Debug/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/DevicePolling/bin/Debug/System.Diagnostics.DiagnosticSource.xml b/DevicePolling/bin/Debug/System.Diagnostics.DiagnosticSource.xml
new file mode 100644
index 0000000..b541be3
--- /dev/null
+++ b/DevicePolling/bin/Debug/System.Diagnostics.DiagnosticSource.xml
@@ -0,0 +1,1723 @@
+
+
+
+ System.Diagnostics.DiagnosticSource
+
+
+
+ Represents an operation with context to be used for logging.
+
+
+ Occurs when the value changes.
+
+
+ Initializes a new instance of the class.
+ The name of the operation.
+
+
+ Updates the to have a new baggage item with the specified key and value.
+ The baggage key.
+ The baggage value.
+
+ for convenient chaining.
+
+
+ Adds the specified activity event to the events list.
+ The activity event to add.
+
+ for convenient chaining.
+
+
+ Updates the activity to have a tag with an additional and .
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Updates the to have a new tag with the provided and .
+ The tag key.
+ The tag value.
+
+ for convenient chaining.
+
+
+ Stops the activity if it is already started and notifies any event listeners. Nothing will happen otherwise.
+
+
+ When overriden by a derived type, this method releases any allocated resources.
+
+ if the method is being called from the finalizer; if calling from user code.
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the tags attached to this Activity object.
+
+ .
+
+
+ Returns the value of a key-value pair added to the activity with .
+ The baggage key.
+ The value of the key-value-pair item if it exists, or if it does not exist.
+
+
+ Returns the object mapped to the specified property name.
+ The name associated to the object.
+ The object mapped to the property name, if one is found; otherwise, .
+
+
+ Returns the value of the Activity tag mapped to the input key/>.
+ Returns if that key does not exist.
+ The tag key string.
+ The tag value mapped to the input key.
+
+
+ Add or update the Activity baggage with the input key and value.
+ If the input value is - if the collection has any baggage with the same key, then this baggage will get removed from the collection.
+ - otherwise, nothing will happen and the collection will not change.
+ If the input value is not - if the collection has any baggage with the same key, then the value mapped to this key will get updated with the new input value.
+ - otherwise, the key and value will get added as a new baggage to the collection.
+ Baggage item will be updated/removed only if it was originaly added to the current activity. Items inherited from the parents will not be changed/removed, new item would be added to current activity baggage instead.
+ The baggage key name
+ The baggage value mapped to the input key
+
+ for convenient chaining.
+
+
+ Attaches any custom object to this activity. If the specified was previously associated with another object, the property will be updated to be associated with the new instead. It is recommended to use a unique property name to avoid conflicts with anyone using the same value.
+ The name to associate the value with.
+ The object to attach and map to the property name.
+
+
+ Updates the to set its as the difference between and the specified stop time.
+ The UTC stop time.
+
+ for convenient chaining.
+
+
+ Sets the ID format on this before it is started.
+ One of the enumeration values that specifies the format of the property.
+
+ for convenient chaining.
+
+
+ Sets the parent ID using the W3C convention of a TraceId and a SpanId.
+ The parent activity's TraceId.
+ The parent activity's SpanId.
+ One of the enumeration values that specifies flags defined by the W3C standard that are associated with an activity.
+
+ for convenient chaining.
+
+
+ Updates this to indicate that the with an ID of caused this .
+ The ID of the parent operation.
+
+ for convenient chaining.
+
+
+ Sets the start time of this .
+ The start time in UTC.
+
+ for convenient chaining.
+
+
+ Sets the status code and description on the current activity object.
+ The status code
+ The error status description
+
+ for convenient chaining.
+
+
+ Adds or update the activity tag with the input key and value.
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Starts the activity.
+
+ for convenient chaining.
+
+
+ Stops the activity.
+
+
+ Gets or sets the flags (defined by the W3C ID specification) associated with the activity.
+ the flags associated with the activity.
+
+
+ Gets a collection of key/value pairs that represents information that is passed to children of this .
+ Information that's passed to children of this .
+
+
+ Gets the context of the activity. Context becomes valid only if the activity has been started.
+ The context of the activity, if the activity has been started; otherwise, returns the default context.
+
+
+ Gets or sets the current operation () for the current thread. This flows across async calls.
+ The current operation for the current thread.
+
+
+ Gets or sets the default ID format for the .
+
+
+ Gets or sets the display name of the activity.
+ A string that represents the activity display name.
+
+
+ Gets the duration of the operation.
+ The delta between and the end time if the has ended ( or was called), or if the has not ended and was not called.
+
+
+ Gets the list of all the activity events attached to this activity.
+ An enumeration of activity events attached to this activity. If the activity has no events, returns an empty enumeration.
+
+
+ Gets or sets a value that detrmines if the is always used to define the default ID format.
+
+ to always use the ; otherwise, .
+
+
+ Gets a value that indicates whether the parent context was created from remote propagation.
+
+
+ Gets an identifier that is specific to a particular request.
+ The activity ID.
+
+
+ Gets the format for the .
+ The format for the .
+
+
+ Gets or sets a value that indicates whether this activity should be populated with all the propagation information, as well as all the other properties, such as links, tags, and events.
+
+ if the activity should be populated; otherwise.
+
+
+ Gets a value that indicates whether this object is stopped or not.
+
+
+ Gets the relationship between the activity, its parents, and its children in a trace.
+ One of the enumeration values that indicate relationship between the activity, its parents, and its children in a trace.
+
+
+ Gets the list of all the activity links attached to this activity.
+ An enumeration of activity links attached to this activity. If the activity has no links, returns an empty enumeration.
+
+
+ Gets the operation name.
+ The name of the operation.
+
+
+ Gets the parent that created this activity.
+ The parent of this , if it is from the same process, or if this instance has no parent (it is a root activity) or if the parent is from outside the process.
+
+
+ Gets the ID of this activity's parent.
+ The parent ID, if one exists, or if it does not.
+
+
+ Gets the parent's .
+ The parent's .
+
+
+ Gets a value that indicates whether the W3CIdFlags.Recorded flag is set.
+
+ if the W3CIdFlags.Recorded flag is set; otherwise, .
+
+
+ Gets the root ID of this .
+ The root ID, or if the current instance has either a or an .
+
+
+ Gets the activity source associated with this activity.
+
+
+ Gets the SPAN part of the .
+ The ID for the SPAN part of , if the has the W3C format; otherwise, a zero .
+
+
+ Gets the time when the operation started.
+ The UTC time that the operation started.
+
+
+ Gets status code of the current activity object.
+
+
+ Gets the status description of the current activity object.
+
+
+ Gets the list of tags that represent information to log along with the activity. This information is not passed on to the children of this activity.
+ A key-value pair enumeration of tags and objects.
+
+
+ Gets a collection of key/value pairs that represent information that will be logged along with the to the logging system.
+ Information that will be logged along with the to the logging system.
+
+
+ Gets the TraceId part of the .
+ The ID for the TraceId part of the , if the ID has the W3C format; otherwise, a zero TraceId.
+
+
+ When starting an Activity which does not have a parent context, the Trace Id will automatically be generated using random numbers.
+ TraceIdGenerator can be used to override the runtime's default Trace Id generation algorithm.
+
+
+ Gets or sets the W3C header.
+ The W3C header.
+
+
+ Enumerates the data stored on an object.
+ Type being enumerated.
+
+
+ Returns an enumerator that iterates through the data stored on an Activity object.
+
+ .
+
+
+ Advances the enumerator to the next element of the data.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+ Provides data for the event.
+
+
+ Gets the object after the event.
+
+
+ Gets the object before the event.
+
+
+ A representation that conforms to the W3C TraceContext specification. It contains two identifiers: a TraceId and a SpanId, along with a set of common TraceFlags and system-specific TraceState values.
+
+
+ Construct a new activity context instance using the specified arguments.
+ A trace identifier.
+ A span identifier.
+ Contain details about the trace.
+ Carries system-specific configuration data.
+ Indicates if the context is propagated from a remote parent.
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Determines whether this instance and a specified object have the same value.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Parses a W3C trace context headers to an object.
+ The W3C trace parent header.
+ The trace state.
+ The trace parent is invalid.
+ The object created from the parsing operation.
+
+
+ Tries to parse the W3C trace context headers to the object.
+ The W3C trace parent header.
+ The W3C trace state.
+
+ to propagate the context from the remote parent; otherwise, .
+ When this method returns, contains the object created from the parsing operation.
+
+ if the operation succeeds; otherwise.
+
+
+ Tries to parse the W3C trace context headers to an object.
+ The W3C trace parent header.
+ The W3C trace state.
+ When this method returns , the object created from the parsing operation.
+
+ if the parsing was successful; otherwise.
+
+
+ Indicates if the activity context was propagated from a remote parent.
+
+ if it was propagated from a remote parent; otherwise.
+
+
+ The Id of the request as known by the caller.
+ The Span Id in the context.
+
+
+ The flags defined by the W3C standard along with the ID for the activity.
+ The context tracing flags.
+
+
+ The trace identifier.
+ The tracing identifier in the context.
+
+
+ Holds the W3C 'tracestate' header.
+ A string representing the W3C 'tracestate' header.
+
+
+ Encapsulates all the information that is sent to the activity listener, to make decisions about the creation of the activity instance, as well as its state.
+
+The possible generic type parameters are or .
+ The type of the property. Should be either or .
+
+
+ Gets the activity kind which the activity will be created with.
+ One of the enumeration values that represent an activity kind.
+
+
+ Gets the enumeration of activity links that the activity will be created with.
+ An enumeration of activity links.
+
+
+ Gets the name to use as OperationName of the activity that will get created.
+ A string representing the activity name.
+
+
+ Gets the parent context or parent Id that the activity will get created with.
+ The parent of the activity, represented either as a or as an .
+
+
+ Gets the collection that is used to add more tags during the sampling process. The added tags are also added to the created Activity if it is decided that it should be created by the callbacks.
+ The Activity tags collection.
+
+
+ Gets the activity source that creates the activity.
+ An activity source object.
+
+
+ Gets the tags that the activity will be created with.
+ A key-value pair enumeration of tags associated with the activity.
+
+
+ Gets the trace Id to use in the Activity object if it is decided that it should be created by callbacks.
+ The trace Id.
+
+
+ Gets or initializes the trace state to use when creating the Activity.
+
+
+ Represents an event containing a name and a timestamp, as well as an optional list of tags.
+
+
+ Initializes a new activity event instance using the specified name and the current time as the event timestamp.
+ The event name.
+
+
+ Initializes a new activity event instance using the specified name, timestamp and tags.
+ The event name.
+ The event timestamp. Timestamp must only be used for the events that happened in the past, not at the moment of this call.
+ The event tags.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Gets the activity event name.
+ A string representing the activity event name.
+
+
+ Gets the collection of tags associated with the event.
+ A key-value pair enumeration containing the tags associated with the event.
+
+
+ Gets the activity event timestamp.
+ A datetime offset representing the activity event timestamp.
+
+
+ Specifies the format of the property.
+
+
+ The hierarchical format.
+
+
+ An unknown format.
+
+
+ The W3C format.
+
+
+ Describes the relationship between the activity, its parents and its children in a trace.
+
+
+ Outgoing request to the external component.
+
+
+ Output received from an external component.
+
+
+ Internal operation within an application, as opposed to operations with remote parents or children. This is the default value.
+
+
+ Output provided to external components.
+
+
+ Requests incoming from external component.
+
+
+ Activities may be linked to zero or more activity context instances that are causally related.
+
+Activity links can point to activity contexts inside a single trace or across different traces.
+
+Activity links can be used to represent batched operations where an activity was initiated by multiple initiating activities, each representing a single incoming item being processed in the batch.
+
+
+ Constructs a new activity link, which can be linked to an activity.
+ The trace activity context.
+ The key-value pair list of tags associated to the activity context.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Indicates whether the current activity link is equal to another activity link.
+ The activity link to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Indicates whether the current activity link is equal to another object.
+ The object to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Retrieves the activity context inside this activity link.
+
+
+ Retrieves the key-value pair enumeration of tags attached to the activity context.
+ An enumeration of tags attached to the activity context.
+
+
+ Allows listening to the start and stop activity events and gives the opportunity to decide creating an activity for sampling scenarios.
+
+
+ Construct a new activity listener object to start listeneing to the activity events.
+
+
+ Unregisters this activity listener object from listening to activity events.
+
+
+ Gets or sets the callback used to listen to the activity start event.
+ An activity callback instance used to listen to the activity start event.
+
+
+ Gets or sets the callback used to listen to the activity stop event.
+ An activity callback instance used to listen to the activity stop event.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that allows deciding if activity object events that were created using the activity source object should be listened or not.
+
+ to listen events; otherwise.
+
+
+ Enumeration values used by to indicate the amount of data to collect for the related . Requesting more data causes a greater performance overhead.
+
+
+ The activity object should be populated with all the propagation information and also all other properties such as Links, Tags, and Events. Using this value causes to return .
+
+
+ The activity object should be populated the same as the case. Additionally, Activity.Recorded is set to . For activities using the W3C trace ids, this sets a flag bit in the ID that will be propagated downstream requesting that the trace is recorded everywhere.
+
+
+ The activity object does not need to be created.
+
+
+ The activity object needs to be created. It will have a Name, a Source, an Id and Baggage. Other properties are unnecessary and will be ignored by this listener.
+
+
+ Provides APIs to create and start objects and to register objects to listen to the events.
+
+
+ Constructs an activity source object with the specified .
+ The name of the activity source object.
+ The version of the component publishing the tracing info.
+
+
+ Adds a listener to the activity starting and stopping events.
+ The activity listener object to use for listening to the activity events.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity
+ The
+ The created object or if there is no any event listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ If the Activity object is created, it will not automatically start. Callers will need to call to start it.
+ The operation name of the Activity.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity.
+ The
+ The parent Id to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Disposes the activity source object, removes the current instance from the global list, and empties the listeners list.
+
+
+ Checks if there are any listeners for this activity source.
+
+ if there is a listener registered for this activity source; otherwise, .
+
+
+ Creates and starts a new object if there is any listener to the Activity events, returns otherwise.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The optional start timestamp to set on the created Activity object.
+ The operation name of the Activity.
+ The created object or if there is no any listener.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name and activity kind.
+ The operation name of the activity.
+ The activity kind.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent activity context, tags, optional activity link and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent object to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent Id, tags, optional activity links and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent Id to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Returns the activity source name.
+ A string that represents the activity source name.
+
+
+ Returns the activity source version.
+ A string that represents the activity source version.
+
+
+ Represents a formatted based on a W3C standard.
+
+
+ Copies the 8 bytes of the current to a specified span.
+ The span to which the 8 bytes of the SpanID are to be copied.
+
+
+ Creates a new value from a read-only span of eight bytes.
+ A read-only span of eight bytes.
+
+ does not contain eight bytes.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of 16 hexadecimal characters.
+ A span that contains 16 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new span ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new span ID.
+
+
+ Determines whether this instance and the specified instance have the same value.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ the current instance and a specified object, which also must be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the SpanId.
+ The hash code of the SpanId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is the same as the SpanId of ; otherwise, .
+
+
+ Determine whether two specified instances have unequal values.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is different from the SpanId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Define the status code of the Activity which indicate the status of the instrumented operation.
+
+
+ Status code indicating an error is encountered during the operation.
+
+
+ Status code indicating the operation has been validated and completed successfully.
+
+
+ Unset status code is the default value indicating the status code is not initialized.
+
+
+ ActivityTagsCollection is a collection class used to store tracing tags.
+
+This collection will be used with classes like and .
+
+This collection behaves as follows:
+- The collection items will be ordered according to how they are added.
+- Don't allow duplication of items with the same key.
+- When using the indexer to store an item in the collection:
+ - If the item has a key that previously existed in the collection and the value is , the collection item matching the key will be removed from the collection.
+ - If the item has a key that previously existed in the collection and the value is not , the new item value will replace the old value stored in the collection.
+ - Otherwise, the item will be added to the collection.
+- Add method will add a new item to the collection if an item doesn't already exist with the same key. Otherwise, it will throw an exception.
+
+
+ Create a new instance of the collection.
+
+
+ Create a new instance of the collection and store the input list items in the collection.
+ Initial list to store in the collection.
+
+
+ Adds an item to the collection.
+ Key and value pair of the tag to add to the collection.
+
+ already exists in the list.
+
+ is .
+
+
+ Adds a tag with the provided key and value to the collection. This collection doesn't allow adding two tags with the same key.
+ The tag key.
+ The tag value.
+
+
+ Removes all items from the collection.
+
+
+ Determines whether the contains a specific value.
+ The object to locate in the .
+
+ if is found in the ; otherwise, .
+
+
+ Determines whether the collection contains an element with the specified key.
+ The key to locate in the .
+
+ if the collection contains tag with that key. otherwise.
+
+
+ Copies the elements of the collection to an array, starting at a particular array index.
+ The array that is the destination of the elements copied from collection.
+ The zero-based index in array at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator for the .
+
+
+ Removes the first occurrence of a specific item from the collection.
+ The tag key value pair to remove.
+
+ if item was successfully removed from the collection; otherwise, . This method also returns if item is not found in the original collection.
+
+
+ Removes the tag with the specified key from the collection.
+ The tag key.
+
+ if the item existed and removed. otherwise.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through the collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the value associated with the specified key.
+ The tag key.
+ The tag value.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.
+
+
+ Gets the number of elements contained in the collection.
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the collection is read-only. This always returns .
+ Always returns .
+
+
+ Gets or sets a specified collection item.
+
+ When setting a value to this indexer property, the following behavior is observed:
+- If the key previously existed in the collection and the value is , the collection item matching the key will get removed from the collection.
+- If the key previously existed in the collection and the value is not , the value will replace the old value stored in the collection.
+- Otherwise, a new item will get added to the collection.
+ The key of the value to get or set.
+ The object mapped to the key.
+
+
+ Get the list of the keys of all stored tags.
+ An containing the keys of the object that implements .
+
+
+ Get the list of the values of all stored tags.
+ An containing the values in the object that implements .
+
+
+ Enumerates the elements of an .
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Specifies flags defined by the W3C standard that are associated with an activity.
+
+
+ The activity has not been marked.
+
+
+ The activity (or more likely its parents) has been marked as useful to record.
+
+
+ Represents a whose format is based on a W3C standard.
+
+
+ Copies the 16 bytes of the current to a specified span.
+ The span to which the 16 bytes of the trace ID are to be copied.
+
+
+ Creates a new value from a read-only span of 16 bytes.
+ A read-only span of 16 bytes.
+
+ does not contain eight bytes.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of 32 hexadecimal characters.
+ A span that contains 32 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new trace ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new .
+
+
+ Determines whether the current instance and a specified are equal.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ Determines whether this instance and a specified object, which must also be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the TraceId.
+ The hash code of the TraceId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is the same as the TraceId of ; otherwise, .
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is different from the TraceId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Returns a 32-character hexadecimal string that represents this trace ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Provides an implementation of the abstract class that represents a named place to which a source sends its information (events).
+
+
+ Creates a new .
+ The name of this .
+
+
+ Disposes the NotificationListeners.
+
+
+ Determines whether there are any registered subscribers.
+
+ if there are any registered subscribers, otherwise.
+
+
+ Checks whether the is enabled.
+ The name of the event to check.
+
+ if notifications are enabled; otherwise, .
+
+
+ Checks if any subscriber to the diagnostic events is interested in receiving events with this name. Subscribers indicate their interest using a delegate provided in .
+ The name of the event to check.
+ The object that represents a context.
+ The object that represents a context.
+
+ if it is enabled, otherwise.
+
+
+ Invokes the OnActivityExport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Invokes the OnActivityImport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the incoming request.
+
+
+ Adds a subscriber.
+ A subscriber.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name and up to two context objects.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or to if an event filter is not desirable.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, optionally filters events based on their name and up to two context objects, and specifies methods to call when providers import or export activites from outside the process.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or if an event filter is not desirable.
+ An action delegate that receives the activity affected by an external event and an object that represents the incoming request.
+ An action delegate that receives the activity affected by an external event and an object that represents the outgoing request.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name.
+ A subscriber.
+ A delegate that filters events based on their name (). The delegate should return if the event is enabled.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Returns a string with the name of this DiagnosticListener.
+ The name of this DiagnosticListener.
+
+
+ Logs a notification.
+ The name of the event to log.
+ An object that represents the payload for the event.
+
+
+ Gets the collection of listeners for this .
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ An abstract class that allows code to be instrumented for production-time logging of rich data payloads for consumption within the process that was instrumented.
+
+
+ Initializes an instance of the class.
+
+
+ Verifies if the notification event is enabled.
+ The name of the event being written.
+
+ if the notification event is enabled, otherwise.
+
+
+ Verifies it the notification event is enabled.
+ The name of the event being written.
+ An object that represents the additional context for IsEnabled. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) to check if consumer wants to get notifications for such events at all. Based on that, producer may call IsEnabled(string, object, object) again with non- context.
+ Optional. An object that represents the additional context for IsEnabled. by default. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) or producer passed all necessary context in .
+
+ if the notification event is enabled, otherwise.
+
+
+ Transfers state from an activity to some event or operation, such as an outgoing HTTP request, that will occur outside the process.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Transfers state to an activity from some event or operation, such as an incoming request, that occurred outside the process.
+ The activity affected by an external event.
+ A payload that represents the incoming request.
+
+
+ Starts an and writes a start event.
+ The to be started.
+ An object that represent the value being passed as a payload for the event.
+ The started activity for convenient chaining.
+
+
+ Stops the given , maintains the global activity, and notifies consumers that the was stopped.
+ The activity to be stopped.
+ An object that represents the value passed as a payload for the event.
+
+
+ Provides a generic way of logging complex payloads.
+ The name of the event being written.
+ An object that represents the value being passed as a payload for the event. This is often an anonymous type which contains several sub-values.
+
+
+ An implementation of determines if and how distributed context information is encoded and decoded as it traverses the network.
+ The encoding can be transported over any network protocol that supports string key-value pairs. For example, when using HTTP, each key-value pair is an HTTP header.
+ injects values into and extracts values from carriers as string key-value pairs.
+
+
+ Initializes an instance of the class. This constructor is protected and only meant to be called from parent classes.
+
+
+ Returns the default propagator object that will be initialized with.
+ An instance of the class.
+
+
+ Returns a propagator that does not transmit any distributed context information in outbound network messages.
+ An instance of the class.
+
+
+ Returns a propagator that attempts to act transparently, emitting the same data on outbound network requests that was received on the inbound request.
+ When encoding the outbound message, this propagator uses information from the request's root Activity, ignoring any intermediate Activities that may have been created while processing the request.
+ An instance of the class.
+
+
+ Extracts the baggage key-value pair list from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation baggage list from the carrier.
+ Returns the extracted key-value pair list from the carrier.
+
+
+ Extracts the trace ID and trace state from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation trace ID and state from the carrier.
+ When this method returns, contains the trace ID extracted from the carrier.
+ When this method returns, contains the trace state extracted from the carrier.
+
+
+ Injects the trace values stroed in the object into a carrier. For example, into the headers of an HTTP request.
+ The Activity object has the distributed context to inject to the carrier.
+ The medium in which the distributed context will be stored.
+ The callback method to invoke to set a named key-value pair on the carrier.
+
+
+ Get or set the process-wide propagator object to use as the current selected propagator.
+ The currently selected process-wide propagator object.
+
+
+ Gets the set of field names this propagator is likely to read or write.
+ The list of fields that will be used by the DistributedContextPropagator
.
+
+
+ Represents the callback method that's used in the extract methods of propagators. The callback is invoked to look up the value of a named field.
+ The medium used by propagators to read values from.
+ The propagation field name.
+ When this method returns, contains the value that corresponds to . The value is non- if there is only one value for the input field name.
+ When this method returns, contains a collection of values that correspond to . The value is non- if there is more than one value for the input field name.
+
+
+ Represents the callback method that's used in propagators' inject methods. This callback is invoked to set the value of a named field.
+ Propagators may invoke it multiple times in order to set multiple fields.
+ The medium used by propagators to write values to.
+ The propagation field name.
+ The value corresponding to .
+
+
+ Represents an instrument that supports adding non-negative values. For example, you might call counter.Add(1) each time a request is processed to track the total number of requests. Most metric viewers display counters using a rate (requests/sec), by default, but can also display a cumulative total.
+ The type that the counter represents.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Adds the increment value of the measurement.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Represents a metrics instrument that can be used to report arbitrary values that are likely to be statistically meaningful, for example, the request duration. Call to create a Histogram object.
+ The type that the histogram represents.
+
+
+ Records a measurement value.
+ The measurement value.
+
+
+ Records a measurement value.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Base class of all metrics instrument classes
+
+
+ Protected constructor to initialize the common instrument properties like the meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Activates the instrument to start recording measurements and to allow listeners to start listening to such measurements.
+
+
+ Gets the instrument description.
+
+
+ Gets a value that indicates if there are any listeners for this instrument.
+
+
+ Gets a value that indicates whether the instrument is an observable instrument.
+
+
+ Gets the Meter that created the instrument.
+
+
+ Gets the instrument name.
+
+
+ Gets the instrument unit of measurements.
+
+
+ The base class for all non-observable instruments.
+ The type that the instrument represents.
+
+
+ Create the metrics instrument using the properties meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Stores one observed metrics value and its associated tags. This type is used by an Observable instrument's Observe() method when reporting current measurements.
+ The type that the measurement represents.
+
+
+ Initializes a new instance of using the specified value.
+ The measurement value.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Gets the measurement tags list.
+
+
+ Gets the measurement value.
+
+
+ A delegate to represent the Meterlistener callbacks that are used when recording measurements.
+ The instrument that sent the measurement.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+ The state object originally passed to method.
+ The type that the measurement represents.
+
+
+ Meter is the class responsible for creating and tracking the Instruments.
+
+
+ Initializes a new instance of using the specified meter name.
+ The Meter name.
+
+
+ Initializes a new instance of using the specified meter name and version.
+ The Meter name.
+ The optional Meter version.
+
+
+ Create a metrics Counter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new counter.
+
+
+ Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new histogram.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement..
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Create a metrics UpDownCounter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new up down counter.
+
+
+ Dispose the Meter which will disable all instruments created by this meter.
+
+
+ Gets the Meter name.
+ The Meter name
+
+
+ Gets the Meter version.
+ The Meter version.
+
+
+ The MeterListener is class used to listen to the metrics instrument measurements recording.
+
+
+ Initializes a new instance of the class.
+
+
+ Stops listening to a specific instrument measurement recording.
+ The instrument to stop listening to.
+ The state object originally passed to method.
+
+
+ Disposes the listeners which will stop it from listening to any instrument.
+
+
+ Starts listening to a specific instrument measurement recording.
+ The instrument to listen to.
+ A state object that will be passed back to the callback getting measurements events.
+
+
+ Calls all Observable instruments that the listener is listening to, and calls with every collected measurement.
+
+
+ Sets a callback for a specific numeric type to get the measurement recording notification from all instruments which enabled listening and was created with the same specified numeric type.
+ If a measurement of type T is recorded and a callback of type T is registered, that callback will be used.
+ The callback which can be used to get measurement recording of numeric type T.
+ The type of the numeric measurement.
+
+
+ Enables the listener to start listening to instruments measurement recording.
+
+
+ Gets or sets the callback to get notified when an instrument is published.
+ The callback to get notified when an instrument is published.
+
+
+ Gets or sets the callback to get notified when the measurement is stopped on some instrument.
+ This can happen when the Meter or the Listener is disposed or calling on the listener.
+ The callback to get notified when the measurement is stopped on some instrument.
+
+
+ Represents a metrics-observable instrument that reports monotonically increasing values when the instrument is being observed, for example, CPU time (for different processes, threads, user mode, or kernel mode). Call to create the observable counter object.
+ The type that the observable counter represents.
+
+
+ Represents an observable instrument that reports non-additive values when the instrument is being observed, for example, the current room temperature. Call to create the observable counter object.
+
+
+
+ ObservableInstrument{T} is the base class from which all metrics observable instruments will inherit.
+ The type that the observable instrument represents.
+
+
+ Initializes a new instance of the class using the specified meter, name, description, and unit.
+ All classes that extend ObservableInstrument{T} must call this constructor when constructing objects of the extended class.
+ The meter that created the instrument.
+ The instrument name. cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Fetches the current measurements being tracked by this instrument. All classes extending ObservableInstrument{T} need to implement this method.
+ The current measurements tracked by this instrument.
+
+
+ Gets a value that indicates if the instrument is an observable instrument.
+
+ if the instrument is metrics-observable; otherwise.
+
+
+ A metrics-observable instrument that reports increasing or decreasing values when the instrument is being observed.
+Use this instrument to monitor the process heap size or the approximate number of items in a lock-free circular buffer, for example.
+To create an ObservableUpDownCounter object, use the methods.
+ The type that the counter represents.
+
+
+ An instrument that supports reporting positive or negative metric values.
+ UpDownCounter may be used in scenarios like reporting the change in active requests or queue size.
+ The type that the UpDownCounter represents.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A of tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A span of key-value pair tags associated with the measurement.
+
+
+ A delegate that defines the signature of the callbacks used in the sampling process.
+ The Activity creation options used by callbacks to decide creating the Activity object or not.
+ The type of the requested parent to create the Activity object with. Should be either a string or an instance.
+ An object containing the sampling results, which indicate the amount of data to collect for the related .
+
+
+ Represents a list of tags that can be accessed by index. Provides methods to search, sort, and manipulate lists.
+
+
+ Initializes a new instance of using the specified .
+ A span of tags to initialize the list with.
+
+
+ Adds a tag to the list.
+ The key-value pair of the tag to add to the list.
+
+
+ Adds a tag with the specified and to the list.
+ The tag key.
+ The tag value.
+
+
+ Removes all elements from the .
+
+
+ Determines whether a tag is in the .
+ The tag to locate in the .
+
+ if item is found in the ; otherwise, .
+
+
+ Copies the entire to a compatible one-dimensional array, starting at the specified index of the target array.
+ The one-dimensional Array that is the destination of the elements copied from . The Array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than 0 or greater than or equal to the length.
+
+
+ Copies the contents of this into a destination span.
+ The destination object.
+
+ The number of elements in the source is greater than the number of elements that the destination span.
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Searches for the specified tag and returns the zero-based index of the first occurrence within the entire .
+ The tag to locate in the .
+ The zero-based index of the first ocurrence of in the tag list.
+
+
+ Inserts an element into the at the specified index.
+ The zero-based index at which the item should be inserted.
+ The tag to insert.
+
+ is less than 0 or is greater than .
+
+
+ Removes the first occurrence of a specific object from the .
+ The tag to remove from the .
+
+ if is successfully removed; otherwise, . This method also returns if was not found in the .
+
+
+ Removes the element at the specified index of the .
+ The zero-based index of the element to remove.
+
+ index is less than 0 or is greater than .
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Gets the number of tags contained in the .
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the is read-only. This property will always return .
+
+ Always returns .
+
+
+ Gets or sets the tags at the specified index.
+ The item index.
+
+ is not a valid index in the .
+ The element at the specified index.
+
+
+ An enumerator for traversing a tag list collection.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+
\ No newline at end of file
diff --git a/DevicePolling/bin/Debug/System.IO.Pipelines.dll b/DevicePolling/bin/Debug/System.IO.Pipelines.dll
new file mode 100644
index 0000000..c534b2c
Binary files /dev/null and b/DevicePolling/bin/Debug/System.IO.Pipelines.dll differ
diff --git a/DevicePolling/bin/Debug/System.IO.Pipelines.xml b/DevicePolling/bin/Debug/System.IO.Pipelines.xml
new file mode 100644
index 0000000..c6f2b61
--- /dev/null
+++ b/DevicePolling/bin/Debug/System.IO.Pipelines.xml
@@ -0,0 +1,341 @@
+
+
+
+ System.IO.Pipelines
+
+
+
+ Result returned by call.
+
+
+ Initializes a new instance of struct setting the and flags.
+
+ to indicate the current operation that produced this was canceled by ; otherwise, .
+
+ to indicate the reader is no longer reading data written to the .
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the current operation was canceled; otherwise, .
+
+
+ Gets a value that indicates the reader is no longer reading data written to the .
+
+ if the reader is no longer reading data written to the ; otherwise, .
+
+
+ Defines a class that provides a duplex pipe from which data can be read from and written to.
+
+
+ Gets the half of the duplex pipe.
+
+
+ Gets the half of the duplex pipe.
+
+
+ The default and implementation.
+
+
+ Initializes a new instance of the class using as options.
+
+
+ Initializes a new instance of the class with the specified options.
+ The set of options for this pipe.
+
+
+ Resets the pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Represents a set of options.
+
+
+ Initializes a new instance of the class with the specified parameters.
+ The pool of memory blocks to be used for buffer management.
+ The to be used to execute callbacks and async continuations.
+ The used to execute callbacks and async continuations.
+ The number of bytes in the before starts blocking. A value of zero prevents from ever blocking, effectively making the number of bytes in the unlimited.
+ The number of bytes in the when stops blocking.
+ The minimum size of the segment requested from .
+
+ if asynchronous continuations should be executed on the they were captured on; otherwise. This takes precedence over the schedulers specified in and .
+
+
+ Gets the default instance of .
+ A object initialized with default parameters.
+
+
+ Gets the minimum size of the segment requested from the .
+ The minimum size of the segment requested from the .
+
+
+ Gets the number of bytes in the when starts blocking.
+ The number of bytes in the when starts blocking.
+
+
+ Gets the object used for buffer management.
+ A pool of memory blocks used for buffer management.
+
+
+ Gets the used to execute callbacks and async continuations.
+ A that is used to execute callbacks and async continuations.
+
+
+ Gets the number of bytes in the when stops blocking.
+ The number of bytes in the when stops blocking.
+
+
+ Gets a value that determines if asynchronous callbacks and continuations should be executed on the they were captured on. This takes precedence over the schedulers specified in and .
+
+ if asynchronous callbacks and continuations should be executed on the they were captured on; otherwise, .
+
+
+ Gets the used to execute callbacks and async continuations.
+ A object used to execute callbacks and async continuations.
+
+
+ Defines a class that provides access to a read side of pipe.
+
+
+ Initializes a new instance of the class.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.
+ Marks the extent of the data that has been successfully processed.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.
+ Marks the extent of the data that has been successfully processed.
+ Marks the extent of the data that has been read and examined.
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels to currently pending or if none is pending next call to , without completing the .
+
+
+ Signals to the producer that the consumer is done reading.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe reader instance as being complete, meaning no more data will be read from it.
+ An optional exception that indicates the failure that caused the reader to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a specified buffer size and cancellation token.
+ The pipe writer to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified stream, using a specified cancellation token.
+ The stream to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe reader will wrap.
+ The options to configure the pipe reader.
+ A that wraps the .
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Asynchronously reads a sequence of bytes from the current .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous read operation.
+
+
+ Attempts to synchronously read data the .
+ When this method returns , this value is set to a instance that represents the result of the read call; otherwise, this value is set to .
+
+ if data was available, or if the call was canceled or the writer was completed; otherwise, .
+
+
+ Abstraction for running and callbacks and continuations.
+
+
+ Initializes new a instance.
+
+
+ Requests to be run on scheduler with being passed in.
+ The single-parameter action delegate to schedule.
+ The parameter to pass to the delegate.
+
+
+ The implementation that runs callbacks inline.
+ A instance that runs callbacks inline.
+
+
+ The implementation that queues callbacks to the thread pool.
+ A instance that queues callbacks to the thread pool.
+
+
+ Defines a class that provides a pipeline to which data can be written.
+
+
+ Initializes a new instance of the class.
+
+
+ Notifies the that bytes were written to the output or . You must request a new buffer after calling to continue writing more data; you cannot write to a previously acquired buffer.
+ The number of bytes written to the or .
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels the pending operation. If there is none, cancels next operation, without completing the .
+
+
+ Marks the as being complete, meaning no more items will be written to it.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe writer instance as being complete, meaning no more data will be written to it.
+ An optional exception that indicates the failure that caused the pipeline to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the specified stream and writes them to the .
+ The stream from which the contents will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe writer will wrap.
+ The options to configure the pipe writer.
+ A that wraps the .
+
+
+ Makes bytes written available to and runs continuation.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents and wraps the asynchronous flush operation.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty memory buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A memory buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Writes the specified byte memory range to the pipe and makes data accessible to the .
+ The read-only byte memory region to write.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.
+
+
+ Represents the result of a call.
+
+
+ Creates a new instance of setting and flags.
+ The read-only sequence containing the bytes of data that were read in the call.
+ A flag that indicates if the operation that produced this was canceled by .
+ A flag that indicates whether the end of the data stream has been reached.
+
+
+ Gets the that was read.
+ A read-only sequence containing the bytes of data that were read in the call.
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the operation that produced this was canceled by ; otherwise, .
+
+
+ Gets a value that indicates whether the end of the data stream has been reached.
+
+ if the end of the data stream has been reached; otherwise, .
+
+
+ Provides extension methods for that support read and write operations directly into pipes.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a cancellation token.
+ The stream from which the contents of the current stream will be copied.
+ The writer to which the contents of the source stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, a minimum read size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+ The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ The buffer size.
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.
+ The minimum read size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ An integer representing the minimum buffer size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+
\ No newline at end of file
diff --git a/DevicePolling/bin/Debug/System.Memory.dll b/DevicePolling/bin/Debug/System.Memory.dll
new file mode 100644
index 0000000..4617199
Binary files /dev/null and b/DevicePolling/bin/Debug/System.Memory.dll differ
diff --git a/DevicePolling/bin/Debug/System.Memory.xml b/DevicePolling/bin/Debug/System.Memory.xml
new file mode 100644
index 0000000..4d12fd7
--- /dev/null
+++ b/DevicePolling/bin/Debug/System.Memory.xml
@@ -0,0 +1,355 @@
+
+
+ System.Memory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DevicePolling/bin/Debug/System.Numerics.Vectors.dll b/DevicePolling/bin/Debug/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..0865972
Binary files /dev/null and b/DevicePolling/bin/Debug/System.Numerics.Vectors.dll differ
diff --git a/DevicePolling/bin/Debug/System.Numerics.Vectors.xml b/DevicePolling/bin/Debug/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/DevicePolling/bin/Debug/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/DevicePolling/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll b/DevicePolling/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..c5ba4e4
Binary files /dev/null and b/DevicePolling/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/DevicePolling/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml b/DevicePolling/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..9d79492
--- /dev/null
+++ b/DevicePolling/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,291 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given void pointer.
+ The void pointer to add the offset to.
+ The offset to add.
+ The type of void pointer.
+ A new void pointer that reflects the addition of offset to the specified pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Determines whether the specified references point to the same location.
+ The first reference to compare.
+ The second reference to compare.
+ The type of reference.
+
+ if and point to the same location; otherwise, .
+
+
+ Casts the given object to the specified type.
+ The object to cast.
+ The type which the object will be cast to.
+ The original object, casted to the given type.
+
+
+ Reinterprets the given reference as a reference to a value of type .
+ The reference to reinterpret.
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ A reference to a value of type .
+
+
+ Returns a pointer to the given by-ref parameter.
+ The object whose pointer is obtained.
+ The type of object.
+ A pointer to the given value.
+
+
+ Reinterprets the given read-only reference as a reference.
+ The read-only reference to reinterpret.
+ The type of reference.
+ A reference to a value of type .
+
+
+ Reinterprets the given location as a reference to a value of type .
+ The location of the value to reference.
+ The type of the interpreted location.
+ A reference to a value of type .
+
+
+ Determines the byte offset from origin to target from the given references.
+ The reference to origin.
+ The reference to target.
+ The type of reference.
+ Byte offset from origin to target i.e. - .
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A pointer to the value to copy.
+ The type of value to copy.
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A reference to the value to copy.
+ The type of value to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Returns a value that indicates whether a specified reference is greater than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is greater than ; otherwise, .
+
+
+ Returns a value that indicates whether a specified reference is less than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is less than ; otherwise, .
+
+
+ Determines if a given reference to a value of type is a null reference.
+ The reference to check.
+ The type of the reference.
+
+ if is a null reference; otherwise, .
+
+
+ Returns a reference to a value of type that is a null reference.
+ The type of the reference.
+ A reference to a value of type that is a null reference.
+
+
+ Reads a value of type from the given location.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Returns the size of an object of the given type parameter.
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+ Bypasses definite assignment rules for a given value.
+ The uninitialized object.
+ The type of the uninitialized object.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+ Subtracts an element offset from the given void pointer.
+ The void pointer to subtract the offset from.
+ The offset to subtract.
+ The type of the void pointer.
+ A new void pointer that reflects the subtraction of offset from the specified pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of byte offset from pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+ Returns a to a boxed value.
+ The value to unbox.
+ The type to be unboxed.
+
+ is , and is a non-nullable value type.
+
+ is not a boxed value type.
+
+-or-
+
+ is not a boxed .
+
+ cannot be found.
+ A to the boxed value .
+
+
+ Writes a value of type to the given location.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+
\ No newline at end of file
diff --git a/DevicePolling/bin/Debug/System.Threading.Tasks.Extensions.dll b/DevicePolling/bin/Debug/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000..eeec928
Binary files /dev/null and b/DevicePolling/bin/Debug/System.Threading.Tasks.Extensions.dll differ
diff --git a/DevicePolling/bin/Debug/System.Threading.Tasks.Extensions.xml b/DevicePolling/bin/Debug/System.Threading.Tasks.Extensions.xml
new file mode 100644
index 0000000..5e02a99
--- /dev/null
+++ b/DevicePolling/bin/Debug/System.Threading.Tasks.Extensions.xml
@@ -0,0 +1,166 @@
+
+
+ System.Threading.Tasks.Extensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a value type that wraps a and a TResult, only one of which is used.
+ The result.
+
+
+ Initializes a new instance of the class using the supplied task that represents the operation.
+ The task.
+ The task argument is null.
+
+
+ Initializes a new instance of the class using the supplied result of a successful operation.
+ The result.
+
+
+ Retrieves a object that represents this .
+ The object that is wrapped in this if one exists, or a new object that represents the result.
+
+
+ Configures an awaiter for this value.
+ true to attempt to marshal the continuation back to the captured context; otherwise, false.
+ The configured awaiter.
+
+
+ Creates a method builder for use with an async method.
+ The created builder.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Creates an awaiter for this value.
+ The awaiter.
+
+
+ Returns the hash code for this instance.
+ The hash code for the current object.
+
+
+ Gets a value that indicates whether this object represents a canceled operation.
+ true if this object represents a canceled operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a completed operation.
+ true if this object represents a completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a successfully completed operation.
+ true if this object represents a successfully completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a failed operation.
+ true if this object represents a failed operation; otherwise, false.
+
+
+ Compares two values for equality.
+ The first value to compare.
+ The second value to compare.
+ true if the two values are equal; otherwise, false.
+
+
+ Determines whether two values are unequal.
+ The first value to compare.
+ The seconed value to compare.
+ true if the two values are not equal; otherwise, false.
+
+
+ Gets the result.
+ The result.
+
+
+ Returns a string that represents the current object.
+ A string that represents the current object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DevicePolling/bin/Debug/ZstdSharp.dll b/DevicePolling/bin/Debug/ZstdSharp.dll
new file mode 100644
index 0000000..931b84a
Binary files /dev/null and b/DevicePolling/bin/Debug/ZstdSharp.dll differ
diff --git a/DevicePolling/obj/Debug/.NETFramework,Version=v4.0.AssemblyAttributes.cs b/DevicePolling/obj/Debug/.NETFramework,Version=v4.0.AssemblyAttributes.cs
new file mode 100644
index 0000000..5d01041
--- /dev/null
+++ b/DevicePolling/obj/Debug/.NETFramework,Version=v4.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
diff --git a/DevicePolling/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/DevicePolling/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..15efebf
--- /dev/null
+++ b/DevicePolling/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
diff --git a/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..2c3f41b
Binary files /dev/null and b/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..b2aaafd
Binary files /dev/null and b/DevicePolling/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/DevicePolling/obj/Debug/DevicePolling.Properties.Resources.resources b/DevicePolling/obj/Debug/DevicePolling.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/DevicePolling/obj/Debug/DevicePolling.Properties.Resources.resources differ
diff --git a/DevicePolling/obj/Debug/DevicePolling.csproj.AssemblyReference.cache b/DevicePolling/obj/Debug/DevicePolling.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..ddff8a8
Binary files /dev/null and b/DevicePolling/obj/Debug/DevicePolling.csproj.AssemblyReference.cache differ
diff --git a/DevicePolling/obj/Debug/DevicePolling.csproj.CoreCompileInputs.cache b/DevicePolling/obj/Debug/DevicePolling.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..d7a4106
--- /dev/null
+++ b/DevicePolling/obj/Debug/DevicePolling.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+71e525e93ff0063ba47007491cbe3c9d5535c91f
diff --git a/DevicePolling/obj/Debug/DevicePolling.csproj.FileListAbsolute.txt b/DevicePolling/obj/Debug/DevicePolling.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..643bfc7
--- /dev/null
+++ b/DevicePolling/obj/Debug/DevicePolling.csproj.FileListAbsolute.txt
@@ -0,0 +1,82 @@
+D:\Projects\TMS\DevicePolling\DevicePolling\obj\Debug\DevicePolling.exe
+D:\Projects\TMS\DevicePolling\DevicePolling\obj\Debug\DevicePolling.pdb
+D:\Projects\TMS\DevicePolling\DevicePolling\bin\Debug\DevicePolling.exe
+D:\Projects\TMS\DevicePolling\DevicePolling\bin\Debug\DevicePolling.pdb
+D:\Projects\TMS\DevicePolling\DevicePolling\obj\Debug\DevicePolling.csprojResolveAssemblyReference.cache
+D:\Projects\TMS\DevicePolling\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+D:\Projects\TMS\DevicePolling\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+D:\Projects\TMS\DevicePolling\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\bin\Debug\DevicePollingForBT.exe.config
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\bin\Debug\DevicePollingForBT.exe
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\bin\Debug\DevicePollingForBT.pdb
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\obj\Debug\DevicePolling.csprojResolveAssemblyReference.cache
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\obj\Debug\DevicePollingForBT.Properties.Resources.resources
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\obj\Debug\DevicePollingForBT.exe
+D:\Projects\TMS\New Utilities\DevicePolling\DevicePolling\obj\Debug\DevicePollingForBT.pdb
+D:\New project\DevicePolling\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+D:\New project\DevicePolling\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+D:\New project\DevicePolling\DevicePolling\obj\Debug\DevicePolling.csprojResolveAssemblyReference.cache
+D:\New project\DevicePolling\DevicePolling\bin\Debug\DevicePolling.exe.config
+D:\New project\DevicePolling\DevicePolling\bin\Debug\DevicePolling.exe
+D:\New project\DevicePolling\DevicePolling\bin\Debug\DevicePolling.pdb
+D:\New project\DevicePolling\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+D:\New project\DevicePolling\DevicePolling\obj\Debug\DevicePolling.exe
+D:\New project\DevicePolling\DevicePolling\obj\Debug\DevicePolling.pdb
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe.config
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.exe
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.pdb
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.pdb
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csprojResolveAssemblyReference.cache
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+D:\New project\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe.config
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.exe
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.pdb
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.pdb
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csprojResolveAssemblyReference.cache
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+D:\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe.config
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.exe
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.pdb
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.pdb
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csprojResolveAssemblyReference.cache
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+D:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe.config
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.exe
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.pdb
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.pdb
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csprojResolveAssemblyReference.cache
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+E:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe.config
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.exe
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.pdb
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.exe
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\bin\Debug\DevicePolling.pdb
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csprojResolveAssemblyReference.cache
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+G:\Ismail Data\FINAL BACKUP\Faique Projects\DevicePolling - OnlyFaceMachines\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\DevicePolling.exe.config
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\DevicePolling.exe
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\DevicePolling.pdb
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.csproj.AssemblyReference.cache
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.csproj.GenerateResource.cache
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.csproj.CoreCompileInputs.cache
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.csproj.CopyComplete
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.exe
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.pdb
diff --git a/DevicePolling/obj/Debug/DevicePolling.csproj.GenerateResource.cache b/DevicePolling/obj/Debug/DevicePolling.csproj.GenerateResource.cache
new file mode 100644
index 0000000..58fb530
Binary files /dev/null and b/DevicePolling/obj/Debug/DevicePolling.csproj.GenerateResource.cache differ
diff --git a/DevicePolling/obj/Debug/DevicePolling.csprojResolveAssemblyReference.cache b/DevicePolling/obj/Debug/DevicePolling.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..35b67a9
Binary files /dev/null and b/DevicePolling/obj/Debug/DevicePolling.csprojResolveAssemblyReference.cache differ
diff --git a/DevicePolling/obj/Debug/DevicePolling.exe b/DevicePolling/obj/Debug/DevicePolling.exe
new file mode 100644
index 0000000..a858f52
Binary files /dev/null and b/DevicePolling/obj/Debug/DevicePolling.exe differ
diff --git a/DevicePolling/obj/Debug/DevicePolling.pdb b/DevicePolling/obj/Debug/DevicePolling.pdb
new file mode 100644
index 0000000..9b72b62
Binary files /dev/null and b/DevicePolling/obj/Debug/DevicePolling.pdb differ
diff --git a/DevicePolling/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/DevicePolling/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
new file mode 100644
index 0000000..f3f2d1c
Binary files /dev/null and b/DevicePolling/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ
diff --git a/DevicePolling/obj/Debug/ZktecoAttendenceService.DevicePolling.resources b/DevicePolling/obj/Debug/ZktecoAttendenceService.DevicePolling.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/DevicePolling/obj/Debug/ZktecoAttendenceService.DevicePolling.resources differ
diff --git a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.AssemblyReference.cache b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..f03c841
Binary files /dev/null and b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.AssemblyReference.cache differ
diff --git a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.CoreCompileInputs.cache b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..783f36a
--- /dev/null
+++ b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+e624d2b121c7896fcfa753a70d1d65c9f169c918
diff --git a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.FileListAbsolute.txt b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..da140ca
--- /dev/null
+++ b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.FileListAbsolute.txt
@@ -0,0 +1,42 @@
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\ZktecoAttendenceService.DevicePolling.resources
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.Properties.Resources.resources
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\ZktecoAttendenceService.csproj.GenerateResource.cache
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\ZktecoAttendenceService.csproj.CoreCompileInputs.cache
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\DevicePolling.exe.config
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\DevicePolling.exe
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\DevicePolling.pdb
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\BouncyCastle.Cryptography.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\Google.Protobuf.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\K4os.Compression.LZ4.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\K4os.Compression.LZ4.Streams.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\K4os.Hash.xxHash.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\MySql.Data.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Buffers.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Configuration.ConfigurationManager.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Diagnostics.DiagnosticSource.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.IO.Pipelines.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Memory.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Numerics.Vectors.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Threading.Tasks.Extensions.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\ZstdSharp.dll
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\BouncyCastle.Cryptography.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\Google.Protobuf.pdb
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\Google.Protobuf.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\K4os.Compression.LZ4.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\K4os.Compression.LZ4.Streams.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\K4os.Hash.xxHash.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\MySql.Data.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Buffers.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Diagnostics.DiagnosticSource.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.IO.Pipelines.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Memory.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Numerics.Vectors.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\bin\Debug\System.Threading.Tasks.Extensions.xml
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\ZktecoAttendenceService.csproj.CopyComplete
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.exe
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\DevicePolling.pdb
+D:\Projects\ZktecoAttendenceService\DevicePolling\obj\Debug\ZktecoAttendenceService.csproj.AssemblyReference.cache
diff --git a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.GenerateResource.cache b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.GenerateResource.cache
new file mode 100644
index 0000000..83f0e74
Binary files /dev/null and b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.GenerateResource.cache differ
diff --git a/DevicePolling/obj/DevicePolling.csproj.FileList.txt b/DevicePolling/obj/DevicePolling.csproj.FileList.txt
new file mode 100644
index 0000000..574c08e
--- /dev/null
+++ b/DevicePolling/obj/DevicePolling.csproj.FileList.txt
@@ -0,0 +1,8 @@
+bin\Debug\DevicePolling.exe
+bin\Debug\DevicePolling.pdb
+obj\Debug\ResolveAssemblyReference.cache
+obj\Debug\UtilityForFingerIdentity.DevicePolling.resources
+obj\Debug\DevicePolling.Properties.Resources.resources
+obj\Debug\DevicePolling.csproj.GenerateResource.Cache
+obj\Debug\DevicePolling.exe
+obj\Debug\DevicePolling.pdb
diff --git a/DevicePolling/packages.config b/DevicePolling/packages.config
new file mode 100644
index 0000000..50e88cd
--- /dev/null
+++ b/DevicePolling/packages.config
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/.signature.p7s b/packages/BouncyCastle.Cryptography.2.2.1/.signature.p7s
new file mode 100644
index 0000000..9c0b33a
Binary files /dev/null and b/packages/BouncyCastle.Cryptography.2.2.1/.signature.p7s differ
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/BouncyCastle.Cryptography.2.2.1.nupkg b/packages/BouncyCastle.Cryptography.2.2.1/BouncyCastle.Cryptography.2.2.1.nupkg
new file mode 100644
index 0000000..0a7aa6e
Binary files /dev/null and b/packages/BouncyCastle.Cryptography.2.2.1/BouncyCastle.Cryptography.2.2.1.nupkg differ
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/LICENSE.md b/packages/BouncyCastle.Cryptography.2.2.1/LICENSE.md
new file mode 100644
index 0000000..821865f
--- /dev/null
+++ b/packages/BouncyCastle.Cryptography.2.2.1/LICENSE.md
@@ -0,0 +1,13 @@
+Copyright (c) 2000-2023 The Legion of the Bouncy Castle Inc. (https://www.bouncycastle.org).
+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,
+sub license, 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.**
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/README.md b/packages/BouncyCastle.Cryptography.2.2.1/README.md
new file mode 100644
index 0000000..be68bee
--- /dev/null
+++ b/packages/BouncyCastle.Cryptography.2.2.1/README.md
@@ -0,0 +1,45 @@
+# The Bouncy Castle Cryptography Library For .NET
+[](https://www.nuget.org/packages/BouncyCastle.Cryptography) [](https://www.nuget.org/packages/BouncyCastle.Cryptography)
+
+The Bouncy Castle Cryptography library is a .NET implementation of cryptographic algorithms and protocols. It was developed by the Legion of the Bouncy Castle, a registered Australian Charity, with a little help! The Legion, and the latest goings on with this package, can be found at [https://www.bouncycastle.org](https://www.bouncycastle.org).
+
+In addition to providing basic cryptography algorithms, the package also provides support for CMS, OpenPGP, (D)TLS, TSP, X.509 certificate generation and more. The package also includes implementations of the following NIST Post-Quantum Cryptography Standardization algorithms: CRYSTALS-Dilithium, CRYSTALS-Kyber, Falcon, SPHINCS+, Classic McEliece, FrodoKEM, NTRU, NTRU Prime, Picnic, Saber, BIKE, and SIKE. These should all be considered EXPERIMENTAL and subject to change or removal. SIKE in particular is already slated for removal and should be used for research purposes only.
+
+The Legion also gratefully acknowledges the contributions made to this package by others (see [here](https://www.bouncycastle.org/csharp/contributors.html) for the current list). If you would like to contribute to our efforts please feel free to get in touch with us or visit our [donations page](https://www.bouncycastle.org/donate), sponsor some specific work, or purchase a [support contract](https://www.keyfactor.com/platform/bouncy-castle-support/).
+
+Except where otherwise stated, this software is distributed under a license based on the MIT X Consortium license. To view the license, [see here](https://www.bouncycastle.org/licence.html). This software includes a modified Bzip2 library, which is licensed under the [Apache Software License, Version 2.0](http://www.apache.org/licenses/).
+
+**Note**: This source tree is not the FIPS version of the APIs - if you are interested in our FIPS version please visit us [here](https://www.bouncycastle.org/fips-csharp) or contact us directly at [office@bouncycastle.org](mailto:office@bouncycastle.org).
+
+## Installing BouncyCastle
+You should install [BouncyCastle with NuGet:](https://www.nuget.org/packages/BouncyCastle.Cryptography)
+
+ Install-Package BouncyCastle.Cryptography
+
+Or via the .NET Core command line interface:
+
+ dotnet add package BouncyCastle.Cryptography
+
+Either commands, from Package Manager Console or .NET Core CLI, will download and install BouncyCastle.Cryptography.
+
+
+## Mailing Lists
+
+For those who are interested, there are 2 mailing lists for participation in this project. To subscribe use the links below and include the word subscribe in the message body. (To unsubscribe, replace **subscribe** with **unsubscribe** in the message body)
+
+* [announce-crypto-csharp-request@bouncycastle.org](mailto:announce-crypto-csharp-request@bouncycastle.org)
+ This mailing list is for new release announcements only, general subscribers cannot post to it.
+* [dev-crypto-csharp-request@bouncycastle.org](mailto:dev-crypto-csharp-request@bouncycastle.org)
+ This mailing list is for discussion of development of the package. This includes bugs, comments, requests for enhancements, questions about use or operation.
+
+**NOTE:** You need to be subscribed to send mail to the above mailing list.
+
+## Feedback
+
+If you want to provide feedback directly to the members of **The Legion** then please use [feedback-crypto@bouncycastle.org](mailto:feedback-crypto@bouncycastle.org). If you want to help this project survive please consider [donating](https://www.bouncycastle.org/donate).
+
+For bug reporting/requests you can report issues on [github](https://github.com/bcgit/bc-csharp), or via [feedback-crypto@bouncycastle.org](mailto:feedback-crypto@bouncycastle.org) if required. We will accept pull requests based on this repository as well, but only on the basis that any code included may be distributed under the [Bouncy Castle License](https://www.bouncycastle.org/licence.html).
+
+## Finally
+
+Enjoy!
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/lib/net461/BouncyCastle.Cryptography.dll b/packages/BouncyCastle.Cryptography.2.2.1/lib/net461/BouncyCastle.Cryptography.dll
new file mode 100644
index 0000000..139425e
Binary files /dev/null and b/packages/BouncyCastle.Cryptography.2.2.1/lib/net461/BouncyCastle.Cryptography.dll differ
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/lib/net461/BouncyCastle.Cryptography.xml b/packages/BouncyCastle.Cryptography.2.2.1/lib/net461/BouncyCastle.Cryptography.xml
new file mode 100644
index 0000000..99cccc4
--- /dev/null
+++ b/packages/BouncyCastle.Cryptography.2.2.1/lib/net461/BouncyCastle.Cryptography.xml
@@ -0,0 +1,29053 @@
+
+
+
+ BouncyCastle.Cryptography
+
+
+
+ Elliptic curve registry for ANSSI.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Return a representing the contents of the BIT STRING. The final byte, if any,
+ may include pad bits. See .
+ A with its source as the BIT STRING content.
+
+
+
+ Return a representing the contents of the BIT STRING, where the content is
+ expected to be octet-aligned (this will be automatically checked during parsing).
+ A with its source as the BIT STRING content.
+
+
+
+ Return the number of pad bits, if any, in the final byte, if any, read from
+ .
+
+ This number is in the range zero to seven. That number of the least significant bits of the final byte, if
+ any, are not part of the contents and should be ignored. NOTE: Must be called AFTER the stream has been
+ fully processed. (Does not need to be called if was used instead of
+ .
+
+ The number of pad bits. In the range zero to seven.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ Mutable class for building ASN.1 constructed objects such as SETs or SEQUENCEs.
+
+
+ GeneralizedTime ASN.1 type
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ Return an ObjectDescriptor from the passed in object.
+
+ @param obj an ASN1ObjectDescriptor or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ Return an ObjectDescriptor from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an octet string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ Return the content of the OCTET STRING as a .
+ A represnting the OCTET STRING's content.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Needed for open types, until we have better type-guided parsing support. Use sparingly for other
+ purposes, and prefer {@link #getExplicitBaseTagged()}, {@link #getImplicitBaseTagged(int, int)} or
+ {@link #getBaseUniversal(boolean, int)} where possible. Before using, check for matching tag
+ {@link #getTagClass() class} and {@link #getTagNo() number}.
+
+
+ Needed for open types, until we have better type-guided parsing support. Use
+ sparingly for other purposes, and prefer {@link #getExplicitBaseTagged()} or
+ {@link #getBaseUniversal(boolean, int)} where possible. Before using, check
+ for matching tag {@link #getTagClass() class} and {@link #getTagNo() number}.
+
+
+
+
+
+ Needed for open types, until we have better type-guided parsing support.
+
+ Use sparingly for other purposes, and prefer or
+ where possible. Before using, check for matching tag
+ class and number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UTCTime ASN.1 type
+
+
+ return a UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an adjusted date in the range of 1950 - 2049.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ iso.org.dod.internet.private.enterprise.legion-of-the-bouncy-castle
+ 1.3.6.1.4.1.22554
+
+
+ pbe(1) algorithms
+ 1.3.6.1.4.1.22554.1
+
+
+ SHA-1(1)
+ 1.3.6.1.4.1.22554.1.1
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ SPHINCS+
+
+
+ Picnic
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ X.509 extension(4) values
+
+ 1.3.6.1.4.1.22554.4
+
+
+ KEM(4) algorithms
+
+
+ Classic McEliece
+
+
+ SABER
+
+
+ SIKE
+
+
+ Kyber
+
+
+ BIKE
+
+
+ HQC
+
+
+ Extension to tie an alternate certificate to the containing certificate.
+
+ LinkedCertificate := SEQUENCE {
+ digest DigestInfo, -- digest of PQC certificate
+ certLocation GeneralName, -- location of PQC certificate
+ certIssuer [0] Name OPTIONAL, -- issuer of PQC cert (if different from current certificate)
+ cACerts [1] GeneralNames OPTIONAL, -- CA certificates for PQC cert (one of more locations)
+ }
+
+
+
+ A parser for indefinite-length BIT STRINGs.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ See https://www.bsi.bund.de/cae/servlet/contentblob/471398/publicationFile/30615/BSI-TR-03111_pdf.pdf
+
+
+ 0.4.0.127.0.7.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA-1
+ OID: 0.4.0.127.0.7.1.1.5.1.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA224
+ OID: 0.4.0.127.0.7.1.1.5.1.1.2
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA256
+ OID: 0.4.0.127.0.7.1.1.5.1.1.3
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA384
+ OID: 0.4.0.127.0.7.1.1.5.1.1.4
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA512
+ OID: 0.4.0.127.0.7.1.1.5.1.1.5
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function RIPEMD160
+ OID: 0.4.0.127.0.7.1.1.5.1.1.6
+
+
+ Key Derivation Function for Session Keys
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ CertAnnContent ::= CMPCertificate
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedKey
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 19}, < absent >
+ GenRep: {id-it 19}, CertReqTemplateContent | < absent >
+
+ CertReqTemplateValue ::= CertReqTemplateContent
+
+ CertReqTemplateContent ::= SEQUENCE {
+ certTemplate CertTemplate,
+ keySpec Controls OPTIONAL }
+
+ Controls ::= SEQUENCE SIZE (1..MAX) OF AttributeTypeAndValue
+
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ certReqId INTEGER,
+ statusInfo PKIStatusInfo OPTIONAL,
+ hashAlg [0] AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} OPTIONAL
+ }
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Rand is the inner type
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+ id-PasswordBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 13}
+
+
+ id-DHBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 30}
+
+
+ RFC 4120: it-id: PKIX.4 = 1.3.6.1.5.5.7.4
+ RFC 4120: 1.3.6.1.5.5.7.4.1
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.2
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.3
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.4
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.5
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.6
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.7
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.10
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.11
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.12
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.13
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.14
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.15
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.16
+
+
+ Update 16, RFC 4210
+ {id-it 17}
+
+
+ Update 16, RFC 4210
+ GenRep: {id-it 18}, RootCaKeyUpdateContent
+
+
+ Update 16, RFC 4210
+ {id-it 19}
+
+
+ Update 16, RFC 4210
+ GenMsg: {id-it 20}, RootCaCertValue
+
+
+ Update-16 to RFC 4210
+ id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21}
+
+
+ RFC 4211: it-pkip: PKIX.5 = 1.3.6.1.5.5.7.5
+
+
+ RFC 4211: it-regCtrl: 1.3.6.1.5.5.7.5.1
+
+
+ RFC 4211: it-regInfo: 1.3.6.1.5.5.7.5.2
+
+
+ 1.3.6.1.5.5.7.5.1.1
+
+
+ 1.3.6.1.5.5.7.5.1.2
+
+
+ 1.3.6.1.5.5.7.5.1.3
+
+
+ 1.3.6.1.5.5.7.5.1.4
+
+
+ 1.3.6.1.5.5.7.5.1.5
+
+
+ 1.3.6.1.5.5.7.5.1.6
+
+
+ From RFC4210:
+ id-regCtrl-altCertTemplate OBJECT IDENTIFIER ::= {id-regCtrl 7}; 1.3.6.1.5.5.7.1.7
+
+
+ RFC 4211: it-regInfo-utf8Pairs: 1.3.6.1.5.5.7.5.2.1
+
+
+ RFC 4211: it-regInfo-certReq: 1.3.6.1.5.5.7.5.2.1
+
+
+ 1.2.840.113549.1.9.16.1.21
+
+ id-ct OBJECT IDENTIFIER ::= { id-smime 1 } -- content types
+
+ id-ct-encKeyWithID OBJECT IDENTIFIER ::= {id-ct 21}
+
+
+
+ id-regCtrl-algId OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 }
+
+
+ id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 }
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it TBD1}, SEQUENCE SIZE (1..MAX) OF CRLStatus
+ GenRep: {id-it TBD2}, SEQUENCE SIZE (1..MAX) OF
+ CertificateList | < absent >
+
+ CRLSource ::= CHOICE {
+ dpn [0] DistributionPointName,
+ issuer [1] GeneralNames }
+
+
+
+ CRLStatus ::= SEQUENCE {
+ source CRLSource,
+ thisUpdate Time OPTIONAL }
+
+
+ DHBMParameter ::= SEQUENCE {
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ NestedMessageContent ::= PKIMessages
+
+
+ OOBCert ::= CMPCertificate
+
+
+
+ OOBCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the DER encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PBMParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIConfirmContent ::= NULL
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL }
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId
+ OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 20}, RootCaCertValue | < absent >
+ GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent >
+
+ RootCaCertValue ::= CMPCertificate
+
+ RootCaKeyUpdateValue ::= RootCaKeyUpdateContent
+
+ RootCaKeyUpdateContent ::= SEQUENCE {
+ newWithNew CMPCertificate,
+ newWithOld [0] CMPCertificate OPTIONAL,
+ oldWithNew [1] CMPCertificate OPTIONAL
+ }
+
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ From RFC 6211
+
+ CMSAlgorithmProtection ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ signatureAlgorithm [1] SignatureAlgorithmIdentifier OPTIONAL,
+ macAlgorithm [2] MessageAuthenticationCodeAlgorithm
+ OPTIONAL
+ }
+ (WITH COMPONENTS { signatureAlgorithm PRESENT,
+ macAlgorithm ABSENT } |
+ WITH COMPONENTS { signatureAlgorithm ABSENT,
+ macAlgorithm PRESENT })
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ (IMPLICIT TAGS)
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PKIPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+
+
+ Constructor with a single pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfo the pubInfo to be published (can be null if don't care is required).
+
+
+ Constructor with multiple pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfos the pubInfos to be published (can be null if don't care is required).
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Elliptic curve registry for GOST 3410-2001 / 2012.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ Registry of available named parameters for GOST 3410-94.
+
+
+ Look up the for the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Look up the for the parameter set with the given
+ OID.
+ The OID for the parameter set.
+
+
+ Look up the OID of the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Enumerate the available parameter set names in this registry.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Boolean from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null
if not set.
+ @param indirectReference The indirect reference or null
if not set.
+ @param dataValueDescriptor The data value descriptor or null
if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null
if not set.
+ @param indirectReference The indirect reference or null
if not set.
+ @param dataValueDescriptor The data value descriptor or null
if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0
single-ASN1-type
+ 1
OCTET STRING
+ 2
BIT STRING
+
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ IA5String object - this is an Ascii string.
+
+
+ return an IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ Apply the correct validation for an INTEGER primitive following the BER rules.
+
+ @param bytes The raw encoding of the integer.
+ @return true if the (in)put fails this validation.
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a numeric string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an OID from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a printable string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a T61 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ UniversalString object.
+
+
+ return a universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a universal string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a UTF8 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return a videotex string from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a videotex string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ VisibleString object.
+
+
+ return a visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a visible string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ A Definite length BIT STRING
+
+
+ Parser for a DL encoded BIT STRING.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ Parser for definite-length tagged objects.
+
+
+ Edwards Elliptic Curve Object Identifiers (RFC 8410)
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier
value
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier
value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param as CommitmentTypeQualifier
structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object
value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ Elliptic curve registry for GM.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null
.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos
is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName
or certRef
MUST be
+ null
.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName
or certRef
MUST be
+ null
.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems
is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ No longer provides any laziness.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+
+ KMACwithSHAKE128-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 256, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+
+ KMACwithSHAKE256-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 512, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+ Elliptic curve registry for NIST curves.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ 2.16.840.1.101.3.4.3.5
+
+
+ 2.16.840.1.101.3.4.3.6
+
+
+ 2.16.840.1.101.3.4.3.7
+
+
+ 2.16.840.1.101.3.4.3.8
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ RFC 6211 - id-aa-cmsAlgorithmProtect OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) 52 }
+
+
+
+ id-alg-AEADChaCha20Poly1305 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) smime(16) alg(3) 18 }
+
+ AEADChaCha20Poly1305Nonce ::= OCTET STRING (SIZE(12))
+
+
+
+ id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) alg(3) 17 }
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ RFC 5958
+
+
+ [IMPLICIT TAGS]
+
+ OneAsymmetricKey ::= SEQUENCE {
+ version Version,
+ privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
+ privateKey PrivateKey,
+ attributes [0] Attributes OPTIONAL,
+ ...,
+ [[2: publicKey [1] PublicKey OPTIONAL ]],
+ ...
+ }
+
+ PrivateKeyInfo ::= OneAsymmetricKey
+
+ Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
+
+ PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
+ { PUBLIC-KEY,
+ { PrivateKeyAlgorithms } }
+
+ PrivateKey ::= OCTET STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ PublicKey ::= BIT STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
+
+
+
+ Return true if a public key is present, false otherwise.
+
+
+ For when the public key is an ASN.1 encoding.
+
+
+ Return the public key as a raw bit string.
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ Elliptic curve registry for the SEC standard.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ Elliptic curve registry for curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt .
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+ Ukrainian object identifiers
+
+ {iso(1) member-body(2) Ukraine(804) root(2) security(1) cryptography(1) pki(1)}
+
+ { ... pki-alg(1) pki-alg-sym(3) Dstu4145WithGost34311(1) PB(1)}
+
+ DSTU4145 in polynomial basis has 2 oids, one for little-endian representation and one for big-endian
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ Parse ASN.1 objects from input , and write them to the output.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+ Holding class for the AttributeTypeAndValue structures that make up an RDN.
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ Holding class for a single Relative Distinguished Name (RDN).
+
+
+ Create a single valued RDN.
+
+ @param oid RDN type.
+ @param value RDN value.
+
+
+ Create a multi-valued RDN.
+
+ @param aAndVs attribute type/value pairs making up the RDN
+
+
+ Return the number of AttributeTypeAndValue objects in this RDN,
+
+ @return size of RDN, greater than 1 if multi-valued.
+
+
+ *
+ * RelativeDistinguishedName ::=
+ * SET OF AttributeTypeAndValue
+
+ * AttributeTypeAndValue ::= SEQUENCE {
+ * type AttributeType,
+ * value AttributeValue }
+ *
+ * @return this object as its ASN1Primitive type
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+ X.509 Section 9.8.3.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension. It shall contain
+ the algorithm identifier for the alternative digital signature algorithm used by the signer when creating an alternative
+ digital signature and by the relying party when validating the alternative digital signature.
+
+ altSignatureAlgorithm EXTENSION ::= {
+ SYNTAX AltSignatureAlgorithm
+ IDENTIFIED BY id-ce-altSignatureAlgorithm }
+
+ AltSignatureAlgorithm ::= AlgorithmIdentifier{{SupportedAlgorithms}}
+
+ When the altSignatureAlgorithm extension is included in a particular value that is an instance of a data type that
+ supports extensions, the altSignatureValue extension shall also be included.
+
+ NOTE 1 – By having a separate altSignatureAlgorithm extension, instead of having it combined with the
+ altSignatureValue extension, the alternative digital signature algorithm is protected by the alternative signature.
+ This extension may be flagged either as critical or as non-critical.
+
+ NOTE 2 – It is recommended that it be flagged as non-critical. Flagging it as critical would require all relying parties to understand
+ the extension and the alternative public-key algorithms
+
+
+ X.509 Section 9.8.4.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension.
+ This alternative signature shall be created by the issuer using its alternative private key, and it shall be verified using the
+ alternative public key of the issuer.
+
+ altSignatureValue EXTENSION ::= {
+ SYNTAX AltSignatureValue
+ IDENTIFIED BY id-ce-altSignatureValue }
+
+ AltSignatureValue ::= BIT STRING
+
+ This extension can only be created by a signer holding a multiple cryptographic algorithms public-key certificate. When
+ creating the alternative digital signature on an issued public-key certificate or CRL, the signer shall use its alternative
+ private key.
+
+ The procedures for creating and validating alternative digital signatures are specified in:
+
+ - clause 7.2.2 for public-key certificates;
+ - clause 7.10.3 for CRLs: and
+ - clause 11.4 for AVLs.
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText
class, used in
+ CertificatePolicies
X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize
here.
+
+
+
+ Creates a new DisplayText
instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText
instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText
instance.
+ Useful when reading back a DisplayText
class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable
instance.
+
+
+ Returns the stored string
object.
+
+ @return the stored text as a string
.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null
, zero is assumed, if
+ maximum is null
, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] EXPLICIT IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] EXPLICIT GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax
as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true
then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ Microsoft Server Gated Crypto (msSGC).
+ see https://www.alvestrand.no/objectid/1.3.6.1.4.1.311.10.3.3.html
+
+
+ Netscape Server Gated Crypto (nsSGC).
+ see https://www.alvestrand.no/objectid/2.16.840.1.113730.4.1.html
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference
class, used in
+ CertificatePolicies
X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization a String
value
+ @param numbers a Vector
value
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization a String
value
+ @param noticeNumbers an ASN1EncodableVector
value
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector
value
+
+
+ Creates a new NoticeReference
instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence
value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object
method here.
+
+ @return a Asn1Object
value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType
is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID
must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest
.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ The OtherName object.
+
+ OtherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+
+
+ OtherName factory method.
+ @param obj the object used to construct an instance of
+ OtherName
. It must be an instance of OtherName
+
or ASN1Sequence
.
+ @return the instance of OtherName
built from the
+ supplied object.
+ @throws java.lang.IllegalArgumentException if the object passed
+ to the factory is not an instance of OtherName
or something that
+ can be converted into an appropriate ASN1Sequence
.
+
+
+ Base constructor.
+ @param typeID the type of the other name.
+ @param value the ANY object that represents the value.
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings
instance.
+
+ @param seq an Asn1Sequence
constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings
instance.
+
+ @param mappings a HashMap
value that maps
+ string
oids
+ to other string
oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo
instance.
+
+ @param policyQualifierId a PolicyQualifierId
value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo
containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string
.
+
+
+ Creates a new PolicyQualifierInfo
instance.
+
+ @param as PolicyQualifierInfo
X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object
value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax
. It must be an instance of RoleSyntax
+
or Asn1Sequence
.
+ @return the instance of RoleSyntax
built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax
or
+ Asn1Sequence
.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName)
.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string
argument representing
+ the role name, builds a GeneralName
to hold the role name
+ and calls the constructor that takes a GeneralName
.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax
by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence
that holds
+ the encoded elements used to build this RoleSyntax
.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames
holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName
holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string
object.
+ @return the role name of this RoleSyntax represented as a
+ string
object.
+
+
+ Gets the role authority as a string[]
object.
+ @return the role authority of this RoleSyntax represented as a
+ string[]
array.
+
+
+ Implementation of the method ToAsn1Object
as
+ required by the superclass ASN1Encodable
.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ X.509 Section 9.8.2.
+
+ This public-key certificate extension, when present, shall contain the subject’s alternative public key information
+
+ subjectAltPublicKeyInfo EXTENSION ::= {
+ SYNTAX SubjectAltPublicKeyInfo
+ IDENTIFIED BY id-ce-subjectAltPublicKeyInfo }
+
+ SubjectAltPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier{{SupportedAlgorithms}},
+ subjectAltPublicKey BIT STRING }
+
+ The SubjectAltPublicKeyInfo data type has the following components:
+
+ - the algorithm subcomponent, which shall hold the algorithm that this public key is an instance of
+ - the subjectAltPublicKey subcomponent, which shall hold the alternative public key
+
+ This extension may be flagged as critical or as non-critical.
+
+ NOTE – It is recommended that it be flagged as non-critical. Flagging it as critical would require relying parties to understand this
+ extension and the alternative public-key algorithm.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj
can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null
.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj
can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj
can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList
of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList
.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice
class, used in
+ CertificatePolicies
X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice
instance.
+
+ @param noticeRef a NoticeReference
value
+ @param explicitText a DisplayText
value
+
+
+ Creates a new UserNotice
instance.
+
+ @param noticeRef a NoticeReference
value
+ @param str the explicitText field as a string.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ the subject’s alternative public key information
+
+
+ the algorithm identifier for the alternative digital signature algorithm.
+
+
+ alternative signature shall be created by the issuer using its alternative private key.
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+ return the parsed value of the extension represented by the object identifier
+ passed in.
+
+ @return the parsed value of the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A unified elliptic curve registry of the various standard-specific registries.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in all the registries.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ Elliptic curve registry for the curves defined in X.962 EC-DSA.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2
.
+ @param primeP The prime p
defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m
.
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m
.
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ Packet representing AEAD encrypted data. At the moment this appears to exist in the following
+ expired draft only, but it's appearing despite this.
+
+ @ref https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ is detected and fails.
+
+ By default a missing CRC will not cause an exception. To force CRC detection use:
+
+ ArmoredInputStream aIn = ...
+
+ aIn.setDetectMissingCRC(true);
+
+
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Change how the stream should react if it encounters missing CRC checksum.
+ The default value is false (ignore missing CRC checksums). If the behavior is set to true,
+ an {@link IOException} will be thrown if a missing CRC checksum is encountered.
+
+ @param detectMissing ignore missing CRC sums
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. Any current value(s) under the same name will be
+ replaced by the new one. A null value will clear the entry for name. *
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Set an additional header entry. The current value(s) will continue to exist together
+ with the new one. Adding a null value has no effect.
+
+ @param name the name of the header entry.
+ @param value the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Base constructor specifying whether or not to use packets in the new format wherever possible.
+
+ Output stream to write to.
+ true if use new format packets, false if backwards compatible
+ preferred.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ Return the signatures fingerprint.
+ @return fingerprint (digest prefix) of the signature
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the Modification Detection (packets 18 and 19)
+
+
+ Identifier for the AEAD Encrypted Data Packet (packet 20) and version 5
+ Symmetric-Key Encrypted Session Key Packets (packet 3)
+
+
+ Identifier for the Version 5 Public-Key Packet format and corresponding new
+ fingerprint format
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ packet giving the intended recipient fingerprint.
+
+
+ packet giving the issuer key fingerprint.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ Regexp Packet - RFC 4880 5.2.3.14. Note: the RFC says the byte encoding is to be null terminated.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ RFC 4880, Section 5.2.3.25 - Signature Target subpacket.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a signing subkey to the key ring to be generated with default certification and a primary key binding signature.
+
+ The key pair.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification using SHA-1.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+
+ Add a signing subkey with specific hashed and unhashed packets associated with it and
+ default certifications, including the primary-key binding signature.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+ Thrown if the key checksum is invalid.
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+
+ Read all available objects, returning only those that are assignable to the specified type.
+
+ An containing the filtered objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The key ID associated with the public key.
+
+
+ The fingerprint of the public key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this could be a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Return any userIDs associated with the key in raw byte form.
+ No attempt is made to convert the IDs into strings.
+ An IEnumerable of byte[].
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Return any signatures associated with the passed in key identifier keyID.
+ the key id to be matched.
+ An IEnumerable of PgpSignature objects issued by the key with keyID.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Encode the key to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed in raw byte form.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from (in its raw byte form).
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+
+ Merge the given local public key with another, potentially fresher copy. The resulting public key
+ contains the sum of both keys' user-ids and signatures.
+
+
+ If joinTrustPackets is set to true and the copy carries a trust packet, the joined key will copy the
+ trust-packet from the copy. Otherwise, it will carry the trust packet of the local key.
+
+ local public key.
+ copy of the public key (e.g. from a key server).
+ if true, trust packets from the copy are copied over into the resulting key.
+
+ if true, subkey signatures on the copy will be present in the
+ merged key, even if key was not a subkey before.
+ joined key.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ This method will ignore trust packets on the second copy of the certificate and instead
+ copy the local certificate's trust packets to the joined certificate.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @return joined key ring
+ @throws PGPException
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ For each subkey holds: If joinTrustPackets is set to true and the second key is carrying a trust packet,
+ the trust packet will be copied to the joined key.
+ Otherwise, the joined key will carry the trust packet of the local copy.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @param joinTrustPackets if true, trust packets from the second certificate copy will be carried over into the joined certificate
+ @param allowSubkeySigsOnNonSubkey if true, the resulting joined certificate may carry subkey signatures on its primary key
+ @return joined certificate
+ @throws PGPException
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ The fingerprint of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return any keys carrying a signature issued by the key represented by keyID.
+
+ @param keyID the key id to be matched against.
+ @return an iterator (possibly empty) of PGPPublicKey objects carrying signatures from keyID.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return the digest prefix of the signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+ Encode the signature to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Base constructor, creates an empty generator.
+
+
+
+
+ Constructor for pre-initialising the generator from an existing one.
+
+
+ sigSubV an initial set of subpackets.
+
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Return a copy of the subpackets in this vector.
+
+ @return an array containing the vector subpackets in order.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+ Return the EC curve name for the passed in OID.
+
+ @param oid the EC curve object identifier in the PGP key
+ @return a string representation of the OID.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ Wrap a PKIMessage ASN.1 structure.
+
+ PKI message.
+
+
+
+ Create a PKIMessage from the passed in bytes.
+
+ BER/DER encoding of the PKIMessage
+
+
+
+ Return true if this message has protection bits on it. A return value of true
+ indicates the message can be used to construct a ProtectedPKIMessage.
+
+
+
+
+ Wrapper for a PKIMessage with protection attached to it.
+
+
+
+
+ Wrap a general message.
+
+ If the general message does not have protection.
+ The General message
+
+
+
+ Wrap a PKI message.
+
+ If the PKI message does not have protection.
+ The PKI message
+
+
+ Message header
+
+
+ Message body
+
+
+
+ Return the underlying ASN.1 structure contained in this object.
+
+ PkiMessage structure
+
+
+
+ Determine whether the message is protected by a password based MAC. Use verify(PKMACBuilder, char[])
+ to verify the message if this method returns true.
+
+ true if protection MAC PBE based, false otherwise.
+
+
+
+ Return the extra certificates associated with this message.
+
+ an array of extra certificates, zero length if none present.
+
+
+
+ Verify a message with a public key based signature attached.
+
+ a factory of signature verifiers.
+ true if the provider is able to create a verifier that validates the signature, false otherwise.
+
+
+
+ Verify a message with password based MAC protection.
+
+ MAC builder that can be used to construct the appropriate MacCalculator
+ the MAC password
+ true if the passed in password and MAC builder verify the message, false otherwise.
+ if algorithm not MAC based, or an exception is thrown verifying the MAC.
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Add a generator to produce the recipient info required.
+
+ a generator of a recipient info object.
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ a holding class for a file of data to be processed.
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained in this message.
+
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained in this message.
+
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as string objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Dictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in X.509 certificate issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certificate X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ Protected constructor. In some cases clients have their own idea about how to encode
+ the signed attributes and calculate the signature. This constructor is to allow developers
+ to deal with that by extending off the class and overriding e.g. SignedAttributes property.
+
+ @param baseInfo the SignerInformation to base this one on.
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+
+ Carrier for an authenticator control.
+
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+
+
+
+ Create a CertificateRequestMessage from the passed in bytes.
+
+ BER/DER encoding of the CertReqMsg structure.
+
+
+
+ Return the underlying ASN.1 object defining this CertificateRequestMessage object.
+
+ A CertReqMsg
+
+
+
+ Return the certificate template contained in this message.
+
+ a CertTemplate structure.
+
+
+
+ Return whether or not this request has control values associated with it.
+
+ true if there are control values present, false otherwise.
+
+
+
+ Return whether or not this request has a specific type of control value.
+
+ the type OID for the control value we are checking for.
+ true if a control value of type is present, false otherwise.
+
+
+
+ Return a control value of the specified type.
+
+ the type OID for the control value we are checking for.
+ the control value if present, null otherwise.
+
+
+
+ Return whether or not this request message has a proof-of-possession field in it.
+
+ true if proof-of-possession is present, false otherwise.
+
+
+
+ Return the type of the proof-of-possession this request message provides.
+
+ one of: popRaVerified, popSigningKey, popKeyEncipherment, popKeyAgreement
+
+
+
+ Return whether or not the proof-of-possession (POP) is of the type popSigningKey and
+ it has a public key MAC associated with it.
+
+ true if POP is popSigningKey and a PKMAC is present, false otherwise.
+
+
+
+ Return whether or not a signing key proof-of-possession (POP) is valid.
+
+ a provider that can produce content verifiers for the signature contained in this POP.
+ true if the POP is valid, false otherwise.
+ if there is a problem in verification or content verifier creation.
+ if POP not appropriate.
+
+
+
+ Return the ASN.1 encoding of the certReqMsg we wrap.
+
+ a byte array containing the binary encoding of the certReqMsg.
+
+
+
+ Create a builder that makes EncryptedValue structures.
+
+ wrapper a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+
+
+
+
+ Create a builder that makes EncryptedValue structures with fixed length blocks padded using the passed in padder.
+
+ a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+ padder a padder to ensure that the EncryptedValue created will always be a constant length.
+
+
+
+
+ Build an EncryptedValue structure containing the passed in pass phrase.
+
+ a revocation pass phrase.
+ an EncryptedValue containing the encrypted pass phrase.
+
+
+
+
+ Build an EncryptedValue structure containing the certificate contained in
+ the passed in holder.
+
+ a holder containing a certificate.
+ an EncryptedValue containing the encrypted certificate.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Build an EncryptedValue structure containing the private key contained in
+ the passed info structure.
+
+ a PKCS#8 private key info structure.
+ an EncryptedValue containing an EncryptedPrivateKeyInfo structure.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Generic interface for a CertificateRequestMessage control value.
+
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the value contained in this control object.
+
+
+
+
+ An encrypted value padder is used to make sure that prior to a value been
+ encrypted the data is padded to a standard length.
+
+
+
+
+ Return a byte array of padded data.
+
+ the data to be padded.
+ a padded byte array containing data.
+
+
+
+
+ Return a byte array of with padding removed.
+
+ the data to be padded.
+ an array containing the original unpadded data.
+
+
+
+
+ Basic constructor - build from an PKIArchiveOptions structure.
+
+ the ASN.1 structure that will underlie this control.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_pkiArchiveOptions
+
+
+
+ Return the underlying ASN.1 object.
+
+ a PKIArchiveOptions structure.
+
+
+
+ Return the archive control type, one of: encryptedPrivKey,keyGenParameters,or archiveRemGenPrivKey.
+
+ the archive control type.
+
+
+
+ Return whether this control contains enveloped data.
+
+ true if the control contains enveloped data, false otherwise.
+
+
+
+ Return the enveloped data structure contained in this control.
+
+ a CMSEnvelopedData object.
+
+
+
+ Basic constructor - specify the contents of the PKIArchiveControl structure.
+
+ the private key to be archived.
+ the general name to be associated with the private key.
+
+
+
+ Add a recipient generator to this control.
+ recipient generator created for a specific recipient.
+ this builder object.
+
+
+ Build the PKIArchiveControl using the passed in encryptor to encrypt its contents.
+ a suitable content encryptor.
+ a PKIArchiveControl object.
+
+
+
+ Default, IterationCount = 1000, OIW=IdSha1, Mac=HmacSHA1
+
+
+
+
+ Defaults with IPKMacPrimitivesProvider
+
+
+
+
+
+ Create.
+
+ The Mac provider
+ Digest Algorithm Id
+ Mac Algorithm Id
+
+
+
+ Create a PKMAC builder enforcing a ceiling on the maximum iteration count.
+
+ supporting calculator
+ max allowable value for iteration count.
+
+
+ Set the salt length in octets.
+
+ @param saltLength length in octets of the salt to be generated.
+ @return the generator
+
+
+
+ Set the iteration count.
+
+ the iteration count.
+ this
+ if iteration count is less than 100
+
+
+
+ Set PbmParameters
+
+ The parameters.
+ this
+
+
+
+ The Secure random
+
+ The random.
+ this
+
+
+
+ Build an IMacFactory.
+
+ The password.
+ IMacFactory
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_regToken
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+ a UTF8String.
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+ Converts the given password to a BigInteger mod q.
+
+
+ Converts the given password (UTF8 encoded) to a BigInteger mod q.
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The AEAD ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ This exception is thrown if a buffer that is meant to have output copied into it turns out to be too
+ short, or if we've been given insufficient input.
+
+ In general this exception will get thrown rather than an .
+
+
+
+ ASCON v1.2 Hash, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 Hash with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ ASCON v1.2 XOF, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 XOF with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ Implementation of the cryptographic hash function Blake2b.
+
+ Blake2b offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ Blake2b offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2b is optimized for 64-bit platforms and produces digests of any size
+ between 1 and 64 bytes.
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be a multiple of 8 and less than 256.
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ Implementation of the eXtendable Output Function (XOF) BLAKE2xs.
+
+ BLAKE2xs offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2xs offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2xs is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 2^16-2 bytes. The length can also be unknown and then the maximum
+ length will be 2^32 blocks of 32 bytes.
+
+
+ Magic number to indicate an unknown length of digest
+
+
+ Expected digest length for the xof. It can be unknown.
+
+
+ Root hash that will take the updates
+
+
+ Digest of the root hash
+
+
+ Digest of each round of the XOF
+
+
+ Current position for a round
+
+
+ Overall position of the digest. It is useful when the length is known
+ in advance to get last block length.
+
+
+ Keep track of the round number to detect the end of the digest after
+ 2^32 blocks of 32 bytes.
+
+
+ Current node offset incremented by 1 every round.
+
+
+ BLAKE2xs for hashing with unknown digest length
+
+
+ BLAKE2xs for hashing
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+
+
+ BLAKE2xs with key
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+
+
+ BLAKE2xs with key, salt and personalization
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Return the maximum size in bytes the digest can produce when the length
+ is unknown
+
+ @return byte length of the largest digest with unknown length
+
+
+ Update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt, personal string remain.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+
+
+ Start outputting the results of the final calculation for this digest. Unlike doFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+ @return the number of bytes written
+
+
+ Already outputting error.
+
+
+ Number of Words.
+
+
+ Number of Rounds.
+
+
+ Buffer length.
+
+
+ Chunk length.
+
+
+ ChunkStart Flag.
+
+
+ ChunkEnd Flag.
+
+
+ Parent Flag.
+
+
+ Root Flag.
+
+
+ KeyedHash Flag.
+
+
+ DeriveContext Flag.
+
+
+ DeriveKey Flag.
+
+
+ Chaining0 State Locations.
+
+
+ Chaining1 State Location.
+
+
+ Chaining2 State Location.
+
+
+ Chaining3 State Location.
+
+
+ Chaining4 State Location.
+
+
+ Chaining5 State Location.
+
+
+ Chaining6 State Location.
+
+
+ Chaining7 State Location.
+
+
+ IV0 State Locations.
+
+
+ IV1 State Location.
+
+
+ IV2 State Location.
+
+
+ IV3 State Location.
+
+
+ Count0 State Location.
+
+
+ Count1 State Location.
+
+
+ DataLen State Location.
+
+
+ Flags State Location.
+
+
+ Message word permutations.
+
+
+ Blake3 Initialization Vector.
+
+
+ The byte input/output buffer.
+
+
+ The key.
+
+
+ The chaining value.
+
+
+ The state.
+
+
+ The message Buffer.
+
+
+ The indices.
+
+
+ The chainingStack.
+
+
+ The default digestLength.
+
+
+ Are we outputting?
+
+
+ How many more bytes can we output?
+
+
+ The current mode.
+
+
+ The output mode.
+
+
+ The output dataLen.
+
+
+ The block counter.
+
+
+ The # of bytes in the current block.
+
+
+ The position of the next byte in the buffer.
+
+
+ the default digest size (in bits)
+
+
+ Constructor.
+
+ @param pSource the source digest.
+
+
+ Initialise.
+
+ @param pParams the parameters.
+
+
+ Compress next block of the message.
+
+ @param pMessage the message buffer
+ @param pMsgPos the position within the message buffer
+
+
+ Initialise M from message.
+
+ @param pMessage the source message
+ @param pMsgPos the message position
+
+
+ Adjust the stack.
+
+
+ Compress final block.
+
+ @param pDataLen the data length
+
+
+ Process the stack.
+
+
+ Perform compression.
+
+
+ Perform a round.
+
+
+ Adjust Chaining after compression.
+
+
+ Mix function G.
+
+ @param msgIdx the message index
+ @param posA position A in V
+ @param posB position B in V
+ @param posC position C in V
+ @param posD poistion D in V
+
+
+ initialise the indices.
+
+
+ PermuteIndices.
+
+
+ Initialise null key.
+
+
+ Initialise key.
+
+ @param pKey the keyBytes
+
+
+ Initialise key from context.
+
+
+ Initialise chunk block.
+
+ @param pDataLen the dataLength
+ @param pFinal is this the final chunk?
+
+
+ Initialise parent block.
+
+
+ Initialise output block.
+
+
+ IncrementBlockCount.
+
+
+ ResetBlockCount.
+
+
+ Set root indication.
+
+
+
+ Customizable SHAKE function.
+
+
+
+
+ Base constructor
+
+ bit length of the underlying SHAKE function, 128 or 256.
+ the function name string, note this is reserved for use by NIST. Avoid using it if not required.
+ the customization string - available for local use.
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+
+ ParallelHash - a hash designed to support the efficient hashing of very long strings, by taking advantage,
+ of the parallelism available in modern processors with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+ @param B the blocksize (in bytes) for hashing.
+
+
+ Photon-Beetle, https://www.isical.ac.in/~lightweight/beetle/
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/readonlyist-round/updated-spec-doc/photon-beetle-spec-readonly.pdf
+
+ Photon-Beetle with reference to C Reference Impl from: https://github.com/PHOTON-Beetle/Software
+
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ Sparkle v1.2, based on the current round 3 submission, https://sparkle-lwc.github.io/ .
+
+ Reference C implementation: https://github.com/cryptolu/sparkle.
+ Specification:
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/sparkle-spec-final.pdf .
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ TupleHash - a hash designed to simply hash a tuple of input strings, any or all of which may be empty strings,
+ in an unambiguous way with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto and Rijmen.
+
+
+ Copy constructor. This will copy the state of the provided message digest.
+
+
+ Reset the chaining variables
+
+
+ Elliptic curve registry for various customized curve implementations.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AesWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AESWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ RFC 5794.
+
+ ARIA is a 128-bit block cipher with 128-, 192-, and 256-bit keys.
+
+
+
+ An implementation of the ARIA Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AriaWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AriaWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ ASCON v1.2 AEAD, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 AEAD with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ Constants
+
+
+ Variables to hold the state of the engine during encryption and
+ decryption
+
+
+ Initialize a Grain-128AEAD cipher.
+
+ @param forEncryption Whether or not we are for encryption.
+ @param param The parameters required to set up the cipher.
+ @throws ArgumentException If the params argument is inappropriate.
+
+
+ 320 clocks initialization phase.
+
+
+ Get output from non-linear function g(x).
+
+ @return Output from NFSR.
+
+
+ Get output from linear function f(x).
+
+ @return Output from LFSR.
+
+
+ Get output from output function h(x).
+
+ @return y_t.
+
+
+ Shift array 1 bit and add val to index.Length - 1.
+
+ @param array The array to shift.
+ @param val The value to shift in.
+ @return The shifted array with val added to index.Length - 1.
+
+
+ Set keys, reset cipher.
+
+ @param keyBytes The key.
+ @param ivBytes The IV.
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (barring 1 typo at the
+ end of the MulInv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note: This algorithm was patented in the USA, Japan and Europe. These patents expired in 2011/2012.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.
+
+ The implementation here is based on the document http://eprint.iacr.org/2008/329.pdf
+ by Whitfield Diffie and George Ledin, which is a translation of Prof. LU Shu-wang's original standard.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null
to use the current key.
+ the 2 word (128 bit) tweak, or null
to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Base class for format-preserving encryption.
+
+
+
+ Process length bytes from inBuf, writing the output to outBuf.
+
+ number of bytes output.
+ input data.
+ offset in input data to start at.
+ number of bytes to process.
+ destination buffer.
+ offset to start writing at in destination buffer.
+
+
+
+ Initialize the FPE engine for encryption/decryption.
+
+ number of bytes output.
+ true if initialising for encryption, false otherwise.
+ the key and other parameters to use to set the engine up.
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Converts a character password to bytes incorporating the required trailing zero byte.
+
+ @param password the password to be encoded.
+ @return a byte representation of the password in UTF8 + trailing zero.
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost
. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD1 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, 2y,2b or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$' using version
+ '2y'.
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, may be 2b, 2y or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+
+ Generator for PBE derived keys and IVs as usd by OpenSSL. Originally this scheme was a simple extension of
+ PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1. The default digest was changed to SHA-256 with
+ OpenSSL 1.1.0. This implementation still defaults to MD5, but the digest can now be set.
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest the original MD5.
+
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest as specified.
+
+ the digest to use as the PRF.
+
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15]
with the required bits in r
cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r
(second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15]
with the required bits in r
cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r
portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8)
.
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ int.MaxValue / (128 * r * 8)
.
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for mapping from an alphabet to a set of indexes
+ suitable for use with FPE.
+
+
+
+ Return the number of characters in the alphabet.
+
+ the radix for the alphabet.
+
+
+
+ Return the passed in char[] as a byte array of indexes (indexes
+ can be more than 1 byte)
+
+ an index array.
+ characters to be mapped.
+
+
+
+ Return a char[] for this alphabet based on the indexes passed.
+
+ an array of char corresponding to the index values.
+ input array of indexes.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Return an upper limit for the size of the result.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+
+ Base interface for a ciphers that do not require data to be block aligned.
+
+ Note: In cases where the underlying algorithm is block based, these ciphers may add or remove padding as needed.
+
+
+
+
+
+ Return the size of the output buffer required for a Write() plus a
+ close() with the write() being passed inputLen bytes.
+
+ The returned size may be dependent on the initialisation of this cipher
+ and may not be accurate once subsequent input data is processed as the cipher may
+ add, add or remove padding, as it sees fit.
+
+
+ The space required to accommodate a call to processBytes and doFinal with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Return the size of the output buffer required for a write() with the write() being
+ passed inputLen bytes and just updating the cipher output.
+
+ The space required to accommodate a call to processBytes with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Gets the stream for reading/writing data processed/to be processed.
+
+ The stream associated with this cipher.
+
+
+
+ Base interface for cipher builders.
+
+
+
+
+ Return the algorithm and parameter details associated with any cipher built.
+
+
+
+
+ Return the maximum output size that a given input will produce.
+
+ the length of the expected input.
+ The maximum possible output size that can produced for the expected input length.
+
+
+
+ Build a cipher that operates on the passed in stream.
+
+ The stream to write/read any encrypted/decrypted data.
+ A cipher based around the given stream.
+
+
+
+ A cipher builder that can also return the key it was initialized with.
+
+
+
+
+ Return the key we were initialized with.
+
+
+
+ all parameter classes implement this.
+
+
+
+ Interface describing a provider of cipher builders for creating decrypting ciphers.
+
+
+
+
+ Return a cipher builder for creating decrypting ciphers.
+
+ The algorithm details/parameters to use to create the final cipher.
+ A new cipher builder.
+
+
+ Base interface for general purpose byte derivation functions.
+
+
+ The message digest used as the basis for the function.
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ Base interface for a message digest.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the digest produced by this message digest.
+ the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size, in bytes, of the internal buffer used by this digest.
+ the size, in bytes, of the internal buffer used by this digest.
+
+
+ Update the message digest with a single byte.
+ the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Close the digest, producing the final digest value.
+ This call leaves the digest reset.
+ the byte array the digest is to be copied into.
+ the offset into the byte array the digest is to start at.
+ the number of bytes written
+
+
+ Reset the digest back to its initial state.
+
+
+
+ Base interface for operator factories that create stream-based digest calculators.
+
+
+
+ The algorithm details object for calculators made by this factory.
+
+
+ Return the size of the digest associated with this factory.
+ The length of the digest produced by this calculators from this factory in bytes.
+
+
+
+ Create a stream calculator for the digest associated with this factory. The stream
+ calculator is used for the actual operation of entering the data to be digested
+ and producing the digest block.
+
+ A calculator producing an IBlockResult with the final digest in it.
+
+
+ Interface for classes implementing the Digital Signature Algorithm
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signature generation or signature verification.
+ true if we are generating a signature, false otherwise.
+ key parameters for signature generation.
+
+
+ Sign the passed in message (usually the output of a hash function).
+ the message to be signed.
+ two big integers representing the r and s values respectively.
+
+
+ The order of the group that the r, s values in signatures belong to.
+
+
+ Verify the message message against the signature values r and s.
+ the message that was supposed to have been signed.
+ the r signature value.
+ the s signature value.
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+ the encapsulated secret.
+
+
+
+ The length in bytes of the encapsulation.
+
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+
+ An SecretWithEncapsulation derived from the recipient public key.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+
+ Base interface for a key unwrapper.
+
+
+
+
+ The parameter set used to configure this key unwrapper.
+
+
+
+
+ Unwrap the passed in data.
+
+ The array containing the data to be unwrapped.
+ The offset into cipherText at which the unwrapped data starts.
+ The length of the data to be unwrapped.
+ an IBlockResult containing the unwrapped key data.
+
+
+
+ Base interface for a key wrapper.
+
+
+
+
+ The parameter set used to configure this key wrapper.
+
+
+
+
+ Wrap the passed in key data.
+
+ The key data to be wrapped.
+ an IBlockResult containing the wrapped key data.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+ The key or other data required by the MAC.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the MAC produced by this implementation.
+ the size, in bytes, of the MAC produced by this implementation.
+
+
+ Update the MAC with a single byte.
+ the input byte to be entered.
+
+
+ Update the MAC with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Perform final calculations, producing the result MAC.
+ This call leaves the MAC reset.
+ the byte array the MAC is to be copied into.
+ the offset into the byte array the MAC is to start at.
+ the number of bytes written
+
+
+ Reset the MAC back to its initial state.
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ This exception is thrown whenever we find something we don't expect in a message.
+
+
+
+ Return the secret associated with the encapsulation.
+
+ the secret the encapsulation is for.
+
+
+
+ Return the data that carries the secret in its encapsulated form.
+
+ the encapsulation of the secret.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signing or verification.
+ true if for signing, false otherwise.
+ necessary parameters.
+
+
+ Update the signer with a single byte.
+ the input byte to be entered.
+
+
+ Update the signer with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Generate a signature for the message we've been loaded with using the key we were initialised with.
+
+ A byte array containing the signature for the message.
+
+
+ Return true if the internal state represents the signature described in the passed in array.
+
+ an array containing the candidate signature to verify.
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the signer back to its initial state.
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from , putting the result into .
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the input buffer is too small.
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra methods required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this XOF to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this XOF. Unlike DoFinal, this method
+ will continue producing output until the XOF is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+ This exception is thrown whenever a cipher requires a change of key, IV or similar after x amount of
+ bytes enciphered.
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ GCM-SIV Mode.
+ It should be noted that the specified limit of 236 bytes is not supported. This is because all bytes are
+ cached in a ByteArrayOutputStream object (which has a limit of a little less than 231 bytes),
+ and are output on the DoFinal() call (which can only process a maximum of 231 bytes).
+ The practical limit of 231 - 24 bytes is policed, and attempts to breach the limit will be rejected
+ In order to properly support the higher limit, an extended form of ByteArrayOutputStream would be needed
+ which would use multiple arrays to store the data. In addition, a new doOutput method would be required (similar
+ to that in XOF digests), which would allow the data to be output over multiple calls. Alternatively an extended
+ form of ByteArrayInputStream could be used to deliver the data.
+
+
+ The buffer length.
+
+
+ The halfBuffer length.
+
+
+ The nonce length.
+
+
+ The maximum data length (AEAD/PlainText). Due to implementation constraints this is restricted to the maximum
+ array length (https://programming.guide/java/array-maximum-length.html) minus the BUFLEN to allow for the MAC
+
+
+ The top bit mask.
+
+
+ The addition constant.
+
+
+ The initialisation flag.
+
+
+ The aeadComplete flag.
+
+
+ The cipher.
+
+
+ The multiplier.
+
+
+ The gHash buffer.
+
+
+ The reverse buffer.
+
+
+ The aeadHasher.
+
+
+ The dataHasher.
+
+
+ The plainDataStream.
+
+
+ The encryptedDataStream (decryption only).
+
+
+ Are we encrypting?
+
+
+ The initialAEAD.
+
+
+ The nonce.
+
+
+ The flags.
+
+
+ Constructor.
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+ @param pMultiplier the multiplier
+
+
+ check AEAD status.
+ @param pLen the aeadLength
+
+
+ check status.
+ @param pLen the dataLength
+
+
+ Reset Streams.
+
+
+ Obtain buffer length (allowing for null).
+ @param pBuffer the buffere
+ @return the length
+
+
+ calculate tag.
+ @return the calculated tag
+
+
+ complete polyVAL.
+ @return the calculated value
+
+
+ process lengths.
+
+
+ perform the next GHASH step.
+ @param pNext the next value
+
+
+ xor a full block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+
+
+ xor a partial block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+ @param pOffset the offset in the right operand
+ @param pLength the length of data in the right operand
+
+
+ increment the counter.
+ @param pCounter the counter to increment
+
+
+ multiply by X.
+ @param pValue the value to adjust
+
+
+ Derive Keys.
+ @param pKey the keyGeneration key
+
+
+ Hash Control.
+
+
+ Cache.
+
+
+ Single byte cache.
+
+
+ Count of active bytes in cache.
+
+
+ Count of hashed bytes.
+
+
+ Obtain the count of bytes hashed.
+ @return the count
+
+
+ Reset the hasher.
+
+
+ update hash.
+ @param pByte the byte
+
+
+ update hash.
+ @param pBuffer the buffer
+ @param pOffset the offset within the buffer
+ @param pLen the length of data
+
+
+ complete hash.
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ An IAeadCipher based on an IBlockCipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ The block cipher underlying this algorithm.
+
+
+
+ A cipher mode that includes authenticated encryption with a streaming mode and optional
+ associated data.
+
+
+ Implementations of this interface may operate in a packet mode (where all input data is
+ buffered and processed during the call to DoFinal, or in a streaming mode (where output
+ data is incrementally produced with each call to ProcessByte or ProcessBytes. This is
+ important to consider during decryption: in a streaming mode, unauthenticated plaintext
+ data may be output prior to the call to DoFinal that results in an authentication failure.
+ The higher level protocol utilising this cipher must ensure the plaintext data is handled
+ appropriately until the end of data is reached and the entire ciphertext is authenticated.
+
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+ Return the
underlying this cipher mode.
+
+
+ Indicates whether this cipher mode can handle partial blocks.
+
+
+
+ Reset the cipher mode to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm.
+
+ For those still concerned about the original patents around this, please see:
+ https://mailarchive.ietf.org/arch/msg/cfrg/qLTveWOdTJcLn4HP3ev-vrj05Vg/
+ Text reproduced below:
+
+ Phillip Rogaway<rogaway@cs.ucdavis.edu> Sat, 27 February 2021 02:46 UTC
+
+ I can confirm that I have abandoned all OCB patents and placed into the public domain all OCB-related IP of
+ mine. While I have been telling people this for quite some time, I don't think I ever made a proper announcement
+ to the CFRG or on the OCB webpage. Consider that done.
+
+
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface.
+
+
+ Initialise the padder.
+ A source of randomness, if any required.
+
+
+ The name of the algorithm this padder implements.
+
+
+ Add padding to the passed in block.
+ the block to add padding to.
+ the offset into the block the padding is to start at.
+ the number of bytes of padding added.
+
+
+ Determine the length of padding present in the passed in block.
+ the block to check padding for.
+ the number of bytes of padding present.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+
+ A padder that adds the padding according to the scheme referenced in ISO 7814-4 - scheme 2 from ISO 9797-1.
+ The first byte is 0x80, rest is 0x00
+
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds PKCS7/PKCS5 padding to a block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+ This padding pads the block out compliment of the last bit of the plain text.
+
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is passed in random padding is assumed,
+ otherwise padding with zeros is used.
+
+
+
+ A padder that adds zero byte padding to a block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Blake3 Parameters.
+
+
+ Create a key parameter.
+ the context
+ the parameter
+
+
+ Create a key parameter.
+ the key
+ the parameter
+
+
+ Obtain the key.
+ the key
+
+
+ Clear the key bytes.
+
+
+ Obtain the salt.
+ the salt
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+
+ Base constructor - suffix fixed input data only.
+
+ the KDF seed
+ fixed input data to follow counter.
+ length of the counter in bits
+
+
+
+ Base constructor - prefix and suffix fixed input data.
+
+ the KDF seed
+ fixed input data to precede counter
+ fixed input data to follow counter.
+ length of the counter in bits.
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null
if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null
if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher
, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null
to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null
to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Supports use of additional input.
+
+ RFC 6979 3.6. Additional data may be added to the input of HMAC [..]. A use case may be a protocol that
+ requires a non-deterministic signature algorithm on a system that does not have access to a high-quality
+ random source. It suffices that the additional data[..] is non-repeating(e.g., a signature counter or a
+ monotonic clock) to ensure "random-looking" signatures are indistinguishable, in a cryptographic way, from
+ plain (EC)DSA signatures.
+
+ By default there is no additional input. Override this method to supply additional input, bearing in mind
+ that this calculator may be used for many signatures.
+
+ The to which the additional input should be added.
+
+
+
+ An interface for different encoding formats for DSA signatures.
+
+
+
+ Decode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ An encoding of the (r, s) pair of a DSA signature.
+ The (r, s) of a DSA signature, stored in an array of exactly two elements, r followed by s.
+
+
+ Encode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ The r value of a DSA signature.
+ The s value of a DSA signature.
+ An encoding of the DSA signature given by the provided (r, s) pair.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+
+ A simple block result object which just carries a byte array.
+
+
+
+
+ Base constructor - a wrapper for the passed in byte array.
+
+ The byte array to be wrapped.
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+ Create an AlgorithmIdentifier for the passed in encryption algorithm.
+
+ @param encryptionOID OID for the encryption algorithm
+ @param keySize key size in bits (-1 if unknown)
+ @param random SecureRandom to use for parameter generation.
+ @return a full AlgorithmIdentifier including parameters
+ @throws IllegalArgumentException if encryptionOID cannot be matched
+
+
+ A basic alphabet mapper that just creates a mapper based on the
+ passed in array of characters.
+
+
+ Base constructor.
+
+ @param alphabet a string of characters making up the alphabet.
+
+
+ Base constructor.
+
+ @param alphabet an array of characters making up the alphabet.
+
+
+ Create a key generator for the passed in Object Identifier.
+
+ @param algorithm the Object Identifier indicating the algorithn the generator is for.
+ @param random a source of random to initialise the generator with.
+ @return an initialised CipherKeyGenerator.
+ @throws IllegalArgumentException if the algorithm cannot be identified.
+
+
+ Magic value for proprietary OpenSSH private key.
+ C string so null terminated.
+
+
+ Encode a cipher parameters into an OpenSSH private key.
+ This does not add headers like ----BEGIN RSA PRIVATE KEY----
+
+ @param parameters the cipher parameters.
+ @return a byte array
+
+
+ Parse a private key.
+
+ This method accepts the body of the OpenSSH private key.
+ The easiest way to extract the body is to use PemReader, for example:
+
+ byte[] blob = new PemReader([reader]).readPemObject().getContent();
+ CipherParameters params = parsePrivateKeyBlob(blob);
+
+ @param blob The key.
+ @return A cipher parameters instance.
+
+
+ allIntegers returns true if the sequence holds only DerInteger types.
+
+
+
+ Parse a public key.
+
+ This method accepts the bytes that are Base64 encoded in an OpenSSH public key file.
+
+ @param encoded The key.
+ @return An AsymmetricKeyParameter instance.
+
+
+ Encode a public key from an AsymmetricKeyParameter instance.
+
+ @param cipherParameters The key to encode.
+ @return the key OpenSSH encoded.
+ @throws IOException
+
+
+ Parse a public key from an SSHBuffer instance.
+
+ @param buffer containing the SSH public key.
+ @return A CipherParameters instance.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Use KeyTransRecipientInfoGenerator
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal
is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale
of the SimpleBigDecimal
.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimal
s
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimal
s returns a
+ SimpleBigDecimal
with double scale.
+
+
+ Returns a SimpleBigDecimal
representing the same numerical
+ value as value
.
+ @param value The value of the SimpleBigDecimal
to be
+ created.
+ @param scale The scale of the SimpleBigDecimal
to be
+ created.
+ @return The such created SimpleBigDecimal
.
+
+
+ Constructor for SimpleBigDecimal
. The value of the
+ constructed SimpleBigDecimal
Equals bigInt /
+ 2scale
.
+ @param bigInt The bigInt
value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal
.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu
's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ The αu
's for a=0
as an array
+ of ZTauElement
s.
+
+
+ The αu
's for a=0
as an array
+ of TNAFs.
+
+
+ The αu
's for a=1
as an array
+ of ZTauElement
s.
+
+
+ The αu
's for a=1
as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ
of
+ Z[τ]
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return The norm of λ
.
+
+
+ Computes the norm of an element λ
of
+ R[τ]
, where λ = u + vτ
+ and u
and u
are real numbers (elements of
+ R
).
+ @param mu The parameter μ
of the elliptic curve.
+ @param u The real part of the element λ
of
+ R[τ]
.
+ @param v The τ
-adic part of the element
+ λ
of R[τ]
.
+ @return The norm of λ
.
+
+
+ Rounds an element λ
of R[τ]
+ to an element of Z[τ]
, such that their difference
+ has minimal norm. λ
is given as
+ λ = λ0 + λ1τ
.
+ @param lambda0 The component λ0
.
+ @param lambda1 The component λ1
.
+ @param mu The parameter μ
of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ]
.
+ @throws ArgumentException if lambda0
and
+ lambda1
do not have same scale.
+
+
+ Approximate division by n
. For an integer
+ k
, the value λ = s k / n
is
+ computed to c
bits of accuracy.
+ @param k The parameter k
.
+ @param s The curve parameter s0
or
+ s1
.
+ @param vm The Lucas Sequence element Vm
.
+ @param a The parameter a
of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm
.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal
.
+ @return The value λ = s k / n
computed to
+ c
bits of accuracy.
+
+
+ Computes the τ
-adic NAF (non-adjacent form) of an
+ element λ
of Z[τ]
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return The τ
-adic NAF of λ
.
+
+
+ Applies the operation τ()
to an
+ AbstractF2mPoint
.
+ @param p The AbstractF2mPoint to which τ()
is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ
of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ
.
+ The curve must be a Koblitz curve, i.e. a
Equals
+ 0
or 1
and b
Equals
+ 1
.
+ @return μ
of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1
and
+ Uk
or Vk-1
and
+ Vk
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1
and
+ Vk
, otherwise Uk-1
and
+ Uk
.
+ @return An array with 2 elements, containing Uk-1
+ and Uk
or Vk-1
+ and Vk
.
+
+
+ Computes the auxiliary value tw
. If the width is
+ 4, then for mu = 1
, tw = 6
and for
+ mu = -1
, tw = 10
+ @param mu The parameter μ
of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0
and
+ s1
used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0
and s1
.
+ @throws ArgumentException if curve
is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1)
.
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a
of the elliptic curve.
+ @param s The auxiliary values s0
and
+ s1
.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger
using the reduced τ
-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger
by which to Multiply p
.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the τ
-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the τ
-adic NAF (TNAF) method, given the TNAF
+ of λ
.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ
..
+ @return λ * p
+
+
+ Computes the [τ]
-adic window NAF of an element
+ λ
of Z[τ]
.
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
of which to compute the
+ [τ]
-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw
.
+ @param alpha The αu
's for the window width.
+ @return The [τ]
-adic window NAF of
+ λ
.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint
for which to do the precomputation.
+ @param a The parameter a
of the elliptic curve.
+ @return The precomputation array for p
.
+
+
+ Class representing an element of Z[τ]
. Let
+ λ
be an element of Z[τ]
. Then
+ λ
is given as λ = u + vτ
. The
+ components u
and v
may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ
.
+
+
+ The "τ
-adic" part of λ
.
+
+
+ Constructor for an element λ
of
+ Z[τ]
.
+ @param u The "real" part of λ
.
+ @param v The "τ
-adic" part of
+ λ
.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly
+ faster) implementations, and for very small scalars. CAUTION: This implementation is NOT
+ constant-time in any way. It is only intended to be used for diagnostics.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP
.
+
+
+ Base class for an elliptic curve.
+
+
+ Compute a PreCompInfo
for a point on this curve, under a given name. Used by
+ ECMultiplier
s to save the precomputation for this ECPoint
for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint
to store precomputations for.
+ @param name
+ A String
used to index precomputations of different types.
+ @param callback
+ Called to calculate the PreCompInfo
.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Create a cache-safe lookup table for the specified sequence of points. All the points MUST
+ belong to this ECCurve
instance, and MUST already be normalized.
+
+
+ Sets the default ECMultiplier
, unless already set.
+
+ We avoid locking for performance reasons, so there is no uniqueness guarantee.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp
(X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ Solves a quadratic equation z2 + z = beta
(X9.62
+ D.1.6) The other solution is z + 1
.
+
+ @param beta
+ The value to solve the quadratic equation for.
+ @return the solution for z2 + z = beta
or
+ null
if no solution exists.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b
.
+
+
+ The exponent m
of F2m
.
+
+
+ TPB: The integer k
where xm +
+ xk + 1
represents the reduction polynomial
+ f(z)
.
+ PPB: The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ TPB: Always set to 0
+ PPB: The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ TPB: Always set to 0
+ PPB: The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k The integer k
where xm +
+ xk + 1
represents the reduction
+ polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k The integer k
where xm +
+ xk + 1
represents the reduction
+ polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n
.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n
.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m
in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m
of F2m
.
+
+
+ The LongArray
holding the bits.
+
+
+ Checks, if the ECFieldElements a
and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a
and b
+ are not elements of the same field
+ F2m
(having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m
, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m
of the reduction polynomial
+ f(z)
.
+
+
+ @return Tpb: The integer k
where xm +
+ xk + 1
represents the reduction polynomial
+ f(z)
.
+ Ppb: The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ base class for points on elliptic curves.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint
by the given number.
+ @param k The multiplicator.
+ @return k * this
.
+
+
+ Elliptic curve points over Fp
+
+
+ Elliptic curve points over F2m
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoint
s.
+
+
+ Multiplies the ECPoint p
by k
, i.e.
+ p
is added k
times to itself.
+ @param p The ECPoint
to be multiplied.
+ @param k The factor by which p
is multiplied.
+ @return p
multiplied by k
.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Lookup table for the precomputed ECPoint
s used for a fixed point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier
.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this
by an integer k
using the
+ Window NAF method.
+ @param k The integer by which this
is multiplied.
+ @return A new ECPoint
which equals this
+ multiplied by k
.
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoint
s used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoint
s used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint
representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w
of the Window NAF. The width is
+ defined as the minimal number w
, such that for any
+ w
consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+
, where the ki
denote the elements of the
+ returned byte[]
.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ
-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k
using the reduced τ
-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k
.
+ @return p
multiplied by k
.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
using
+ the τ
-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ
of
+ Z[τ]
of which to compute the
+ [τ]
-adic NAF.
+ @return p
multiplied by λ
.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the window τ
-adic NAF (TNAF) method, given the
+ WTNAF of λ
.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ
..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ
-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoint
s used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}
.
+
+
+
+ A low-level implementation of the Ed25519, Ed25519ctx, and Ed25519ph instantiations of the Edwards-Curve Digital
+ Signature Algorithm specified in RFC 8032.
+
+
+ The implementation strategy is mostly drawn from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography", notably the "signed multi-comb" algorithm (for
+ scalar multiplication by a fixed point), the "half Niels coordinates" (for precomputed points), and the
+ "extensible coordinates" (for accumulators). Standard
+ extended coordinates are used during
+ precomputations, needing only a single extra point addition formula.
+
+
+
+
+ A low-level implementation of the Ed448 and Ed448ph instantiations of the Edwards-Curve Digital Signature
+ Algorithm specified in RFC 8032.
+
+
+ The implementation uses the "signed mult-comb" algorithm (for scalar multiplication by a fixed point) from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography". Standard
+ projective coordinates are used
+ for most point arithmetic.
+
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+
+ Enhanced Miller-Rabin Probabilistic Primality Test
+
+
+ Used to return the output from the
+ Shawe-Taylor Random_Prime Routine
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine.
+ Construct a provable prime number using a hash function.
+ The instance to use (as "Hash()"). Cannot be null.
+ The length (in bits) of the prime to be generated. Must be at least 2.
+ The seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ An instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test.
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an alternative to
+ that provides more information about a
+ composite candidate, which may be useful when generating or validating RSA moduli.
+
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+ An instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+ The instance to test for division by small factors.
+ true if the candidate is found to have any small factors, false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test.
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+
+ false if any witness to compositeness is found amongst the chosen bases (so
+ is definitely NOT prime), or else true (indicating primality with some
+ probability dependent on the number of iterations that were performed).
+
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+ The instance to test for primality.
+ The base value to use for this iteration.
+ false if is a witness to compositeness (so
+ is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ Wrapper for the RevokedInfo object
+
+
+ Return the revocation reason, if there is one.
+ This field is optional; test for it with first.
+ The revocation reason, if available.
+ If no revocation reason is available.
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WARNING: If is null, no integrity check is performed.
+
+
+
+ Load without any integrity check.
+
+
+
+
+
+
+ JksTrustedCertEntry is a internal container for the certificate entry.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ Returns X509Extensions if the Extensions Request attribute can be found and returns the extensions block.
+
+ X509Extensions block or null if one cannot be found.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ A holding class for a PKCS#8 encrypted private key info object that allows for its decryption.
+
+
+
+
+ Base constructor from a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A PKCS#8 EncryptedPrivateKeyInfo object.
+
+
+
+ Base constructor from a BER encoding of a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A BER encoding of a PKCS#8 EncryptedPrivateKeyInfo objects.
+
+
+
+ Returns the underlying ASN.1 structure inside this object.
+
+ Return the EncryptedPrivateKeyInfo structure in this object.
+
+
+
+ Returns a copy of the encrypted data in this structure.
+
+ Return a copy of the encrypted data in this object.
+
+
+
+ Return a binary ASN.1 encoding of the EncryptedPrivateKeyInfo structure in this object.
+
+ A byte array containing the encoded object.
+
+
+
+ Get a decryptor from the passed in provider and decrypt the encrypted private key info, returning the result.
+
+ A provider to query for decryptors for the object.
+ The decrypted private key info structure.
+
+
+
+ Create the encrypted private key info using the passed in encryptor.
+
+ The encryptor to use.
+ An encrypted private key info containing the original private key info.
+
+
+ Base exception for PKCS related issues.
+
+
+ Base exception for parsing related issues in the PKCS namespace.
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+
+ @param privateKey the key to be encoded into the info object.
+ @param attributes the set of attributes to be included.
+ @return the appropriate PrivateKeyInfo
+ @throws java.io.IOException on an error encoding the key
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set
of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker
supports or
+ null
if no extensions are supported.
+
+ Each element of the set is a String
representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker
might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set
of X.509 extension OIDs (in
+ String
format) supported by this
+ PkixAttrCertChecker
, or null
if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection
of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params
must be an instance of
+ ExtendedPkixParameters
.
+
+ The target constraints in the params
must be an
+ X509AttrCertStoreSelector
with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult
of the result of
+ validating the certPath
.
+ @throws InvalidAlgorithmParameterException if params
is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters
.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters
, PKIXParameters
,
+ and ExtendedPKIXParameters
instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters
instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet
is null
an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters
and
+ PKIXBuilderParameters
.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters
object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters
object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ * Initializes the internal state of this PKIXCertPathChecker
.
+ *
+ * The forward
flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker
must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check
method. If true
,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false
, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker
is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker
to perform its
+ checks when certificates are presented to the check
method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true
if forward checking is supported,
+ false
otherwise
+
+
+ * Returns an immutable Set
of X.509 certificate extensions
+ * that this PKIXCertPathChecker
supports (i.e. recognizes,
+ * is able to process), or null
if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String
representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set
of X.509 extension OIDs (in
+ * String
format) supported by this
+ * PKIXCertPathChecker
, or null
if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init
method.
+
+ @param cert
+ the Certificate
to be checked
+ @param unresolvedCritExts
+ a Collection
of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator
implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi
)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator
class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi
instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator
object.
+
+ However, implementations of CertPathValidatorSpi
may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi
instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException
provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException
may also include the index of
+ the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #Index Index} property to retrieve
+ this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException
with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null
if none)
+ the cause (or null
if none)
+ the index of the certificate in the certification path that *
+
+
+ eturns the index of the certificate in the certification path that caused the exception to be
+ thrown.
+
+ Note that the list of certificates in a is zero based. If no index has been set,
+ -1 is returned.
+
+ The index that has been set, or -1 if none has been set.
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor
object if found or
+ null
if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal
.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey
. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index
extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector
.
+
+ The issuerPrincipals
are a collection with a single
+ X500Principal
for X509Certificate
s. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal
.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals
does not
+ contain only X500Principal
s.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate
or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set
of X509CRL
s with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set
of X509CRL
s with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection
object containing the issuer
+ X509Certificate
s. Never null
.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null
.
+
+
+
+ The most restricting part from email1
and
+ email2
is added to the intersection intersect
.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ The common part of email1
and email2
is
+ added to the union union
. If email1
and
+ email2
have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ Checks if the IP ip
is included in the excluded ISet
+ excluded
.
+
+ @param excluded A Set
of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP ip
is included in the permitted ISet
+ permitted
.
+
+ @param permitted A Set
of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP address ip
is constrained by
+ constraint
.
+
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @param ip The IP address.
+ @return true
if constrained, false
+ otherwise.
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted
with ip
.
+
+ @param permitted A Set
of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set
of permitted IP ranges intersected with
+ ip
.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set
with the single IP address with its subnet
+ mask as a byte array or an empty Set
.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip
.
+
+ @param excluded A Set
of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set
of excluded IP ranges unified with
+ ip
as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set
with the union of both addresses.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1
with ip2
. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1
and
+ ip2
.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1
and ip2
.
+
+
+
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+
+
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name
is
+ excluded.
+
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector
. If null
, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector
returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector
specifying the constraints on the
+ target certificate or attribute certificate (or null
)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector
. If null
, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector
specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector
specifying the constraints on
+ the target certificate or attribute certificate (or
+ null
)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null
, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null
)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null
)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set
, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set
of initial policy OIDs in String
+ format, or an empty Set
(implying any policy is
+ acceptable). Never returns null
.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set
of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set
(or
+ null
).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null
)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List
of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker
specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker
should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator
or CertPathBuilder
. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator
or CertPathBuilder
for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator
or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null
)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker
to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker
is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker
to add to the list of
+ checks. If null
, the checker is ignored (not added to list).
+
+
+ Method to support Clone()
under J2ME.
+ super.Clone()
does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters
they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false
.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true
if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true
if additional stores are used.
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet
consists of TrustAnchor
s.
+
+ The returned ISet
is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers
must be a ISet
of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null
.
+ @throws ClassCastException if an element of stores
is not
+ a TrustAnchor
.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet
is immutable and contains
+ String
s with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet
must contain String
s with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes
is not a
+ String
.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet
is immutable and contains
+ String
s with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null
.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet
must contain String
s with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes
is not a
+ String
.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null
.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet
must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null
.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker
.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true
if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+
+
+
+
+
+
+
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert
.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert
.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert
.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert
.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set
with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert
.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert
.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert
.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert
.
+ @param workingPublicKey The public key of the issuer certificate sign
.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert
.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert
.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor
where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor
.
+
+ a formatted string describing the TrustAnchor
+
+
+ Generate key pairs
+ - Secret key : (h0, h1, sigma)
+ - Public key: h
+ * @param h0 h0
+ * @param h1 h1
+ * @param sigma sigma
+ * @param h h
+ * @param random Secure Random
+ *
+
+
+ KEM Encapsulation
+ - Input: h
+ - Output: (c0,c1,k)
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ * @param h public key
+ * @param random Secure Random
+ *
+
+
+ KEM Decapsulation
+ - Input: (h0, h1, sigma), (c0, c1)
+ - Output: k
+ * @param h0 private key
+ * @param h1 private key
+ * @param sigma private key
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ *
+
+
+ Constructor.
+
+ @param h0 h0
+ @param h1 h1
+ @param sigma random bytes sigma
+
+
+ Constructor.
+
+ @param publicKey byte
+
+
+ Karatsuba multiplication of a and b, Implementation inspired from the NTL library.
+
+ \param[out] o Polynomial
+ \param[in] a Polynomial
+ \param[in] b Polynomial
+ \param[in] size Length of polynomial
+ \param[in] stack Length of polynomial
+
+
+ @brief Compute o(x) = a(x) mod \f$ X^n - 1\f$
+
+ This function computes the modular reduction of the polynomial a(x)
+
+ @param[in] a Pointer to the polynomial a(x)
+ @param[out] o Pointer to the result
+
+
+ Generate key pairs
+ - Secret key : (x,y)
+ - Public key: (h,s)
+ @param pk output pk = (publicSeed||s)
+
+
+
+
+ HQC Encapsulation
+ - Input: pk, seed
+ - Output: c = (u,v,d), K
+
+ @param u u
+ @param v v
+ @param d d
+ @param K session key
+ @param pk public key
+ @param seed seed
+
+
+
+ HQC Decapsulation
+ - Input: ct, sk
+ - Output: ss
+
+ @param ss session key
+ @param ct ciphertext
+ @param sk secret key
+
+
+
+ HQC Encryption
+ - Input: (h,s, m)
+ - Output: (u,v) = c
+
+ @param h public key
+ @param s public key
+ @param m message
+ @param u ciphertext
+ @param v ciphertext
+
+
+
+ Base interface for a PQC signing algorithm.
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return the signature of the message
+
+
+ verify the message message against the signature value.
+
+ @param message the message that was supposed to have been signed.
+ @param signature the signature of the message
+
+
+ Type to assist in build LMS messages.
+
+
+ Increments an HSS private key without doing any work on it.
+ HSS private keys are automatically incremented when when used to create signatures.
+
+ The HSS private key is ranged tested before this incrementation is applied.
+ LMS keys will be replaced as required.
+
+ @param keyPair
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters array of LMS parameters, one per level in the hierarchy (up to 8 levels).
+ @param random the random byte source.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+ Reset to index will ensure that all LMS keys are correct for a given HSS index value.
+ Normally LMS keys updated in sync with their parent HSS key but in cases of sharding
+ the normal monotonic updating does not apply and the state of the LMS keys needs to be
+ reset to match the current HSS index.
+
+
+ @param src byte[], InputStream or HSSSignature
+ @param L The HSS depth, available from public key.
+ @return An HSSSignature instance.
+ @throws IOException
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters LMS parameter set to use.
+ @param random the random byte source.
+
+
+ Return the key index (the q value).
+
+ @return private key index number.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+
+ Encapsulated secret encapsulated by NTRU.
+
+
+
+
+ NTRU secret encapsulation extractor.
+
+
+
+
+ Encapsulate a secret using NTRU. Returns an as encapsulation.
+
+
+
+ NTRU website
+
+
+
+ NTRU sampling.
+
+ NTRU specification section 1.10
+
+
+
+
+ Sample_fg
+
+ random byte array
+ a pair of polynomial f and g
+
+
+
+
+ Sample_rm
+
+ random byte array
+ a pair of polynomial r and m
+
+
+
+
+ Ternary
+
+ random byte array
+ A ternary polynomial
+
+
+
+ Fixed_Type
+
+ random byte array
+ a ternary polynomial with exactly q/16 − 1 coefficients equal to 1 and q/16 − 1 coefficient equal to −1
+
+
+
+ Ternary_Plus
+
+ random byte array
+ a ternary polynomial that satisfies the non-negative correlation property
+
+
+
+ An OW-CPA secure deterministic public key encryption scheme (DPKE).
+
+
+
+
+ Generate a DPKE key pair.
+
+ a random byte array
+ DPKE key pair
+
+
+
+ DPKE encryption.
+
+
+
+
+ DPKE ciphertext
+
+
+
+ DPKE decryption.
+
+
+
+ an instance of containing packed_rm an fail flag
+
+
+ Largest serialized public key size, in bytes
+
+
+ Largest signature size, in bytes
+
+
+ parameters
+
+
+
+
+
+ Compressed Dlogs
+
+
+ DLOG
+
+
+
+
+
+ Interprets m as SPX_FORS_HEIGHT-bit unsigned integers.
+ Assumes m contains at least SPX_FORS_HEIGHT * SPX_FORS_TREES bits.
+ Assumes indices has space for SPX_FORS_TREES integers.
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Return the SPHINCS+ parameters that map to the passed in parameter ID.
+
+ @param id the oid of interest.
+ @return the parameter set.
+
+
+ Return the OID that maps to the passed in SPHINCS+ parameters.
+
+ @param params the parameters of interest.
+ @return the OID for the parameter set.
+
+
+ SPHINCS+ signer.
+
+ This version is based on the 3rd submission with deference to the updated reference
+ implementation on github as at November 9th 2021. This version includes the changes
+ for the countermeasure for the long-message second preimage attack - see
+ "https://github.com/sphincs/sphincsplus/commit/61cd2695c6f984b4f4d6ed675378ed9a486cbede"
+ for further details.
+
+
+
+ Base constructor.
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding.
+ the PrivateKeyInfo encoding
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding read from a stream
+ the stream to read the PrivateKeyInfo encoding from
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from the passed in PKCS8 PrivateKeyInfo object.
+ the PrivateKeyInfo object containing the key material
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key.
+ the key to be encoded into the info object.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+ the key to be encoded into the info object.
+ the set of attributes to be included.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding
+ the SubjectPublicKeyInfo encoding
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding read from a stream
+ the stream to read the SubjectPublicKeyInfo encoding from
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ default parameters that might be needed.
+ the appropriate key parameter
+ on an error decoding the key
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+ Base class for a TLS client.
+
+
+
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ The default implementation calls this to get the connection_id extension
+ the client will send. As future communication doesn't include the connection IDs length, this should either
+ be fixed-length or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+
+
+
+
+
+
+ an of (or null).
+
+
+ The default implementation calls this to determine which named
+ groups to include in the supported_groups extension for the ClientHello.
+ The named group roles for which there should
+ be at least one supported group. By default this is inferred from the offered cipher suites and signature
+ algorithms.
+ an of . See for group constants.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for supporting a TLS key exchange implementation.
+
+
+ Base class for supporting a TLS key exchange factory implementation.
+
+
+ Base class for a TLS client or server.
+
+
+ Get the values that are supported by this peer.
+
+ WARNING: Mixing DTLS and TLS versions in the returned array is currently NOT supported. Use a separate
+ (sub-)class for each case.
+
+ an array of supported values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for a TLS server.
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ This method will be called if a connection_id extension was sent by the client.
+ If the return value is non-null, the server will send this connection ID to the client to use in future packets.
+ As future communication doesn't include the connection IDs length, this should either be fixed-length
+ or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+ RFC 5246 7.2.
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection.
+
+ Note that as of TLS 1.1, failure to properly close a connection no longer requires that a session not be
+ resumed. This is a change from TLS 1.0 ("The session becomes unresumable if any connection is terminated
+ without proper close_notify messages with level equal to warning.") to conform with widespread
+ implementation practice.
+
+
+
+ An inappropriate message was received.
+
+ This alert is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ This alert is returned if a record is received with an incorrect MAC.
+
+ This alert also MUST be returned if an alert is sent because a TLSCiphertext decrypted in an invalid way:
+ either it wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks against the CBC
+ mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes.
+
+ This message is always fatal and should never be observed in communication between proper implementations
+ (except when messages were corrupted in the network).
+
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length).
+
+ This message is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to negotiate
+ an acceptable set of security parameters given the options available.
+
+ This is a fatal error.
+
+
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it unacceptable.
+
+
+
+ A field in the handshake was out of range or inconsistent with other fields.
+
+ This message is always fatal.
+
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted CA.
+
+ This message is always fatal.
+
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not to
+ proceed with negotiation.
+
+ This message is always fatal.
+
+
+
+ A message could not be decoded because some field was out of the specified range or the length of
+ the message was incorrect.
+
+ This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a signature
+ or validate a Finished message.
+
+ This message is always fatal.
+
+
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+
+
+ (For example, old protocol versions might be avoided for security reasons.) This message is always fatal.
+
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client.
+
+ This message is always fatal.
+
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue.
+
+ This message is always fatal.
+
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure.
+
+ If the user cancels an operation after the handshake is complete, just closing the connection by sending a
+ close_notify is more appropriate. This alert should be followed by a close_notify. This message is
+ generally a warning.
+
+
+
+ Sent by the client in response to a hello request or by the server in response to a client hello
+ after initial handshaking.
+
+ Either of these would normally lead to renegotiation; when that is not appropriate, the recipient should
+ respond with this alert. At that point, the original requester can decide whether to proceed with the
+ connection. One case where this would be appropriate is where a server has spawned a process to satisfy a
+ request; the process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This message is always a
+ warning.
+
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did not
+ put in the corresponding client hello.
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL supplied
+ by the client(see Section 3.3).
+
+ This message MAY be fatal - for example if client authentication is required by the server for the
+ handshake to continue and the server is unable to retrieve the certificate chain, it may send a fatal
+ alert.
+
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not recognize
+ the server name.
+
+ This message MAY be fatal.
+
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see Section 3.6
+ ).
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash.
+
+ This message is always fatal.
+
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an "unknown_psk_identity"
+ alert message.
+
+
+ In the event that the server supports no protocols that the client advertises, then the server
+ SHALL respond with a fatal "no_application_protocol" alert.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version, the server MUST
+ respond with a fatal inappropriate_fallback alert[..].
+
+
+ Sent by endpoints that receive a handshake message not containing an extension that is mandatory
+ to send for the offered TLS version or other negotiated parameters.
+
+
+ Sent by servers when a client certificate is desired but none was provided by the client.
+
+
+
+ RFC 5246 7.2
+
+
+ A basic PSK Identity holder.
+
+
+ A basic SRP Identity holder.
+
+
+ A queue for bytes. This file could be more optimized.
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided .
+ The to copy the bytes to.
+ How many bytes to copy.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a over some bytes at the beginning of the data.
+
+ How many bytes will be readable.
+ A over the data.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Remove data from the buffer.
+ The buffer where the removed data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ OutputStream based on a ByteQueue implementation.
+
+
+ Implementation of the RFC 3546 3.3. CertChainType.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+
+
+ an array of representing a certificate chain.
+
+
+ true if this certificate chain contains no certificates, or false otherwise.
+
+
+
+ Encode this to a , and optionally calculate the
+ "end point hash" (per RFC 5929's tls-server-end-point binding).
+ the of the current connection.
+ the to encode to.
+ the to write the "end point hash" to (or null).
+
+
+
+
+ Parse a from a .
+ the to apply during parsing.
+ the of the current connection.
+ the to parse from.
+ the to write the "end point hash" to (or null).
+
+ a object.
+
+
+
+ RFC 8879
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>;
+ } CertificateRequest;
+
+ Updated for RFC 5246:
+
+ struct {
+ ClientCertificateType certificate_types <1..2 ^ 8 - 1>;
+ SignatureAndHashAlgorithm supported_signature_algorithms <2 ^ 16 - 1>;
+ DistinguishedName certificate_authorities <0..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+ Revised for RFC 8446:
+
+ struct {
+ opaque certificate_request_context <0..2 ^ 8 - 1>;
+ Extension extensions <2..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+
+
+
+
+
+
+
+
+ see for valid constants.
+
+ an of .
+
+
+
+
+
+ an array of certificate types
+
+
+
+ an of (or null before TLS 1.2).
+
+
+
+ an optional of . May be non-null from
+ TLS 1.3 onwards.
+
+
+ an of .
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ an of (possibly null) .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ Implementation of the RFC 3546 3.6. CertificateStatusRequest.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Implementation of the RFC 6961 2.2. CertificateStatusRequestItemV2.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6091
+
+
+ RFC 3546 3.3
+
+
+ see for valid constants.
+ an of .
+
+
+
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ a value.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 5056
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g.serialization).
+
+
+
+ RFC 2246 A.5
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ for DTLS this should be non-null; the input is copied to this
+ , minus the cookie field.
+ a object.
+
+
+
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ RFC 2246 6.1
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values(e.g.serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+ Carrier class for Diffie-Hellman group parameters.
+
+
+ Base constructor with the prime factor of (p - 1).
+ the prime modulus.
+ specifies the prime factor of (p - 1).
+ the base generator.
+
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ Base class for a TlsCrypto implementation that provides some needed methods from elsewhere in the impl
+ package.
+
+
+ Base class for a TlsSecret implementation which captures common code and fields.
+
+
+ Base constructor.
+ the byte[] making up the secret value.
+
+
+
+
+
+ Credentialed class generating agreed secrets from a peer's public key for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class decrypting RSA encrypted secrets sent from a peer for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class for generating signatures based on the use of primitives from the BC light-weight API.
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104).
+
+ The difference is that padding is concatenated versus XORed with the key, e.g:
+ H(K + opad, H(K + ipad, text))
+
+
+
+ Base constructor for one of the standard digest algorithms for which the byteLength is known.
+
+
+ Behaviour is undefined for digests other than MD5 or SHA1.
+
+ the digest.
+
+
+ Reset the mac generator.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class for providing cryptographic services for TLS based on implementations in the BC light-weight API.
+
+ This class provides default implementations for everything. If you need to customise it, extend the class
+ and override the appropriate methods.
+
+
+
+ Support class for ephemeral Diffie-Hellman using the BC light-weight library.
+
+
+ BC light-weight support class for Diffie-Hellman key pair generation and key agreement over a
+ specified Diffie-Hellman configuration.
+
+
+
+
+
+
+
+
+ Implementation class for generation of the raw DSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw DSA signature type using the BC light-weight API.
+
+
+
+ BC light-weight base class for the signers implementing the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ BC light-weight base class for the verifiers supporting the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ Support class for ephemeral Elliptic Curve Diffie-Hellman using the BC light-weight library.
+
+
+ EC domain class for generating key pairs and performing key agreement.
+
+
+
+
+
+ Implementation class for generation of ECDSA signatures in TLS 1.3+ using the BC light-weight API.
+
+
+
+ Implementation class for generation of the raw ECDSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw ECDSA signature type using the BC light-weight
+ API.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Operator supporting the generation of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the verification of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the generation of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ Operator supporting the verification of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ BC light-weight support class for handling TLS secrets and deriving key material and other secrets
+ from them.
+
+
+ Support class for X25519 using the BC light-weight library.
+
+
+ Support class for X448 using the BC light-weight library.
+
+
+ A generic TLS 1.2 AEAD cipher.
+
+
+
+
+
+ Base interface for services supporting AEAD encryption/decryption.
+
+
+ Set the key to be used by the AEAD cipher implementation supporting this service.
+ array holding the AEAD cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for the AEAD operator.
+ the nonce.
+ MAC size in bytes.
+ any additional data to be included in the MAC calculation.
+ if the parameters are inappropriate.
+
+
+ Return the maximum size of the output for input of inputLength bytes.
+ the length (in bytes) of the proposed input.
+ the maximum size of the output.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ A generic TLS 1.0-1.2 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+ Interface for block cipher services.
+
+
+ Set the key to be used by the block cipher implementation supporting this service.
+ array holding the block cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for operator.
+ array holding the initialization vector (IV).
+ offset into the array the IV starts at.
+ length of the IV in the array.
+ if the parameters are inappropriate.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ Return the blocksize (in bytes) of the underlying block cipher.
+ the cipher's blocksize.
+
+
+ Useful utility methods.
+
+
+ The NULL cipher.
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+ Generate a new instance of a TlsMac.
+ the TLS client context specific crypto parameters.
+ The MAC to use.
+
+
+ Base interface for a generic TLS MAC implementation for use with a bulk cipher.
+
+
+ Return the output length (in bytes) of this MAC.
+ The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ A new byte array containing the MAC value.
+
+
+ Constant time calculation of the MAC for some given data with a given expected length.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ The expected length of the full message.
+ Random data for padding out the MAC calculation if required.
+ A new byte array containing the MAC value.
+
+
+ Carrier class for SRP-6 group parameters.
+
+
+ Base constructor.
+ the n value.
+ the g value.
+
+
+ A selection of standard groups for SRP-6.
+
+
+
+
+
+
+
+
+ Base interface for ephemeral key agreement calculator.
+
+
+ Generate an ephemeral key pair, returning the encoding of the public key.
+ a byte encoding of the public key.
+
+
+
+ Pass in the public key for the peer to the agreement calculator.
+ a byte encoding of the peer public key.
+
+
+
+ Calculate the agreed secret based on the calculator's current state.
+ the calculated secret.
+
+
+
+ Interface providing the functional representation of a single X.509 certificate.
+
+
+ Return an encryptor based on the public key in this certificate.
+
+ a based on this certificate's public key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the OID of this certificate's 'signatureAlgorithm', as a string.
+
+
+
+
+
+
+
+
+
+
+ true if (and only if) this certificate can be used to verify the given signature algorithm.
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS bulk cipher.
+
+
+ Return the maximum input size for a ciphertext given a maximum output size for the plaintext of
+ plaintextLimit bytes.
+ the maximum output size for the plaintext.
+ the maximum input size of the ciphertext for plaintextlimit bytes of output.
+
+
+ Return the maximum output size for a ciphertext given an actual input plaintext size of
+ plaintextLength bytes and a maximum input plaintext size of plaintextLimit bytes.
+ the actual input size for the plaintext.
+ the maximum input size for the plaintext.
+ the maximum output size of the ciphertext for plaintextlimit bytes of input.
+
+
+ Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.
+ the maximum number of bytes of ciphertext.
+ the maximum size of the plaintext for ciphertextlimit bytes of input.
+
+
+ Encode the passed in plaintext using the current bulk cipher.
+ sequence number of the message represented by plaintext.
+ content type of the message represented by plaintext.
+ used for the record.
+ extra bytes to allocate at start of returned byte array.
+ array holding input plaintext to the cipher.
+ offset into input array the plaintext starts at.
+ length of the plaintext in the array.
+ A containing the result of encoding (after 'headerAllocation' unused
+ bytes).
+
+
+
+ Decode the passed in ciphertext using the current bulk cipher.
+ sequence number of the message represented by ciphertext.
+ content type used in the record for this message.
+ used for the record.
+ array holding input ciphertext to the cipher.
+ offset into input array the ciphertext starts at.
+ length of the ciphertext in the array.
+ A containing the result of decoding.
+
+
+
+
+
+
+
+
+
+ Service and object creation interface for the primitive types and services that are associated with
+ cryptography in the API.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS 1.2.
+ A list of
+ values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS versions older than 1.2.
+ An array of values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto can support the passed in hash algorithm.
+ the algorithm of interest.
+ true if cryptoHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ the algorithm of interest.
+ true if cryptoSignatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support DH key agreement.
+ true if this instance can support DH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support ECDH key agreement.
+ true if this instance can support ECDH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in block/stream encryption algorithm.
+
+ the algorithm of interest.
+ true if encryptionAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support HKDF with the passed in hash algorithm.
+ the algorithm of interest.
+ true if HKDF is supported with cryptoHashAlgorithm, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in MAC algorithm.
+ the algorithm of interest.
+ true if macAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto supports the passed in named group
+ value.
+ true if this instance supports the passed in named group value.
+
+
+
+ Return true if this TlsCrypto can support RSA encryption/decryption.
+ true if this instance can support RSA encryption/decryption, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ true if signatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm.
+ the algorithm of interest.
+ true if sigAndHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature scheme.
+ the scheme of interest.
+ true if signatureScheme is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support SRP authentication.
+ true if this instance can support SRP authentication, false otherwise.
+
+
+ Create a TlsSecret object based on provided data.
+ the data to base the TlsSecret on.
+ a TlsSecret based on the provided data.
+
+
+ Create a TlsSecret object containing a randomly-generated RSA PreMasterSecret
+ the client version to place in the first 2 bytes
+ a TlsSecret containing the PreMasterSecret.
+
+
+ Return the primary (safest) SecureRandom for this crypto.
+ a SecureRandom suitable for key generation.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of an X.509 certificate.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of a certificate.
+ Certificate type as per IANA TLS Certificate Types registry.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a cipher for the specified encryption and MAC algorithms.
+
+ See enumeration classes , for appropriate
+ argument values.
+
+ context specific parameters.
+ the encryption algorithm to be employed by the cipher.
+ the MAC algorithm to be employed by the cipher.
+ a implementing the encryption and MAC algorithms.
+
+
+
+ Create a domain object supporting the domain parameters described in dhConfig.
+ the config describing the DH parameters to use.
+ a TlsDHDomain supporting the parameters in dhConfig.
+
+
+ Create a domain object supporting the domain parameters described in ecConfig.
+ the config describing the EC parameters to use.
+ a TlsECDomain supporting the parameters in ecConfig.
+
+
+ Adopt the passed in secret, creating a new copy of it.
+ the secret to make a copy of.
+ a TlsSecret based on the original secret.
+
+
+ Create a suitable hash for the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the hash needs to implement.
+ a .
+
+
+ Create a suitable HMAC for the MAC algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the MAC algorithm the HMAC needs to match.
+ a .
+
+
+ Create a suitable HMAC using the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the HMAC should use.
+ a .
+
+
+ Create a nonce generator.
+
+ Each call should construct a new generator, and the generator should be returned from this call only after
+ automatically seeding from this 's entropy source, and from the provided additional
+ seed material. The output of each returned generator must be completely independent of the others.
+
+ context-specific seed material
+ a .
+
+
+ Create an SRP-6 client.
+ client config.
+ an initialised SRP6 client object.
+
+
+ Create an SRP-6 server.
+ server config.
+ the SRP6 verifier value.
+ an initialised SRP6 server object.
+
+
+ Create an SRP-6 verifier generator.
+ generator config.
+ an initialized SRP6 verifier generator.
+
+
+ Setup an initial "secret" for a chain of HKDF calls (RFC 5869), containing a string of HashLen
+ zeroes.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+
+
+ Basic exception class for crypto services to pass back a cause.
+
+
+ Carrier class for context-related parameters needed for creating secrets and ciphers.
+
+
+ Base constructor.
+ the context for this parameters object.
+
+
+
+
+
+ Basic config for Diffie-Hellman.
+
+
+ Domain interface to service factory for creating Diffie-Hellman operators.
+
+
+ Return an agreement operator suitable for ephemeral Diffie-Hellman.
+ a key agreement operator.
+
+
+ Carrier class for Elliptic Curve parameter configuration.
+
+
+ Return the group used.
+ the named group used.
+
+
+ Domain interface to service factory for creating Elliptic-Curve (EC) based operators.
+
+
+ Return an agreement operator suitable for ephemeral EC Diffie-Hellman.
+ a key agreement operator.
+
+
+ Base interface for an encryptor.
+
+
+ Encrypt data from the passed in input array.
+ byte array containing the input data.
+ offset into input where the data starts.
+ the length of the data to encrypt.
+ the encrypted data.
+
+
+
+ Interface for message digest, or hash, services.
+
+
+ Update the hash with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated hash for any input passed in.
+ the hash value.
+
+
+ Return a clone of this hash object representing its current state.
+ a clone of the current hash.
+
+
+ Reset the hash underlying this service.
+
+
+ Interface for MAC services based on HMAC.
+
+
+ Return the internal block size for the message digest underlying this HMAC service.
+ the internal block size for the digest (in bytes).
+
+
+ Interface for MAC services.
+
+
+ Set the key to be used by the MAC implementation supporting this service.
+ array holding the MAC key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+ Update the MAC with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated MAC for any input passed in.
+ the MAC value.
+
+
+ Write the calculated MAC to an output buffer.
+ output array to write the MAC to.
+ offset into the output array to write the MAC to.
+
+
+ Return the length of the MAC generated by this service.
+ the MAC length.
+
+
+ Reset the MAC underlying this service.
+
+
+ Generate a nonce byte[] string.
+ the length, in bytes, of the nonce to generate.
+ the nonce value.
+
+
+ The cipher for TLS_NULL_WITH_NULL_NULL.
+
+
+ Interface supporting the generation of key material and other SSL/TLS secret values from PRFs.
+
+
+
+ Calculate an HMAC with this secret's data as the key.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ array containing the input data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return a new secret based on applying a PRF to this one.
+ PRF algorithm to use.
+ the label details.
+ the seed details.
+ the size (in bytes) of the secret to generate.
+ the new secret.
+
+
+ Destroy the internal state of the secret.
+
+ After this call, any attempt to use the will result in an
+ being thrown.
+
+
+
+ Return an encrypted copy of the data this secret is based on.
+ the encryptor to use for protecting the internal data.
+ an encrypted copy of this secret's internal data.
+
+
+
+ Return the internal data from this secret.
+
+ The does not keep a copy of the data. After this call, any attempt to use the
+ will result in an being thrown.
+
+ the secret's internal data.
+
+
+ RFC 5869 HKDF-Expand function, with this secret's data as the pseudo-random key ('prk').
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ optional context and application specific information (can be zero-length).
+ length of output keying material in octets.
+ output keying material (of 'length' octets).
+
+
+ RFC 5869 HKDF-Extract function, with this secret's data as the 'salt'.
+
+ The does not keep a copy of the data. After this call, any attempt to use
+ the will result in an being thrown.
+
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ input keying material.
+ a pseudo-random key (of HashLen octets).
+
+
+ Base interface for a TLS signer that works on raw message digests.
+
+
+ Generate an encoded signature based on the passed in hash.
+ the signature algorithm to use.
+ the hash calculated for the signature.
+ an encoded signature.
+ in case of an exception processing the hash.
+
+
+
+
+
+ Basic interface for an SRP-6 client implementation.
+
+
+ Generates the secret S given the server's credentials
+ The server's credentials
+ Client's verification message for the server
+ If server's credentials are invalid
+
+
+ Generates client's credentials given the client's salt, identity and password
+ The salt used in the client's verifier.
+ The user's identity (eg. username)
+ The user's password
+ Client's public value to send to server
+
+
+ Basic interface for an SRP-6 server implementation.
+
+
+ Generates the server's credentials that are to be sent to the client.
+ The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+
+ The client's credentials.
+ A shared secret .
+ If client's credentials are invalid.
+
+
+ Base interface for a generator for SRP-6 verifiers.
+
+
+ Creates a new SRP-6 verifier value.
+ The salt to use, generally should be large and random
+ The user's identifying information (eg. username)
+ The user's password
+ A new verifier for use in future SRP authentication
+
+
+ Basic config for SRP.
+
+
+ Return the (N, g) values used in SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+ Set the (N, g) values used for SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS verifier that works with signatures and either raw message digests, or entire
+ messages.
+
+
+
+
+
+ Return true if the passed in signature and hash represent a real signature.
+ the signature object containing the signature to be verified.
+ the hash calculated for the signature.
+ true if signature verifies, false otherwise.
+ in case of an exception verifying signature.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object sending and receiving DTLS data.
+
+
+ Container class for generating signatures that carries the signature type, parameters, public key
+ certificate and public key's associated signer object.
+
+
+ Accept named groups and various standard DH groups with 'P' at least
+ bits.
+
+
+ Accept named groups and various standard DH groups with 'P' at least the specified number of bits.
+
+ the minimum bitlength of 'P'.
+
+
+ Accept named groups and a custom set of group parameters, subject to a minimum bitlength for 'P'.
+
+ a list of acceptable s.
+ the minimum bitlength of 'P'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+ an of acceptable .
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+
+
+
+
+
+
+ a (or null before TLS 1.2).
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ the 48-bit DTLSPlainText.sequence_number field of a received record.
+ true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+ indicates whether is now the latest confirmed
+ sequence number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The record is newer (by epoch and sequence number) than any record received previously.
+
+
+ The record includes the (valid) connection ID (RFC 9146) for this connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4492 5.4
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+ RFC 4492 5.1.2
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6520 3.
+
+
+ RFC 6066
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 8446 4.6.3
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7919
+
+
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 3546 3.6
+
+
+ an of , specifying the list of
+ trusted OCSP responders. An empty list has the special meaning that the responders are implicitly known to
+ the server - e.g., by prior arrangement.
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+
+ an of .
+
+
+ OCSP request extensions.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse an from a .
+ the to parse from.
+ an object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7301 Represents a protocol name for use with ALPN.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Connection ID we use during communication to the peer.
+
+
+ Connection ID our peer uses for communication to us.
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 3. Server Name Indication
+
+ Current implementation uses this guidance: "For backward compatibility, all future data structures associated
+ with new NameTypes MUST begin with a 16-bit length field. TLS MAY treat provided server names as opaque data
+ and pass the names and types to the application.". RFC 6066 specifies ASCII encoding for host_name (possibly
+ using A-labels for IDNs), but note that the previous version (RFC 4366) specified UTF-8 encoding (see RFC 6066
+ Appendix A). For maximum compatibility, it is recommended that client code tolerate receiving UTF-8 from the
+ peer, but only generate ASCII itself.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ an of .
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to .
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ For TLS 1.3+ usage, some signature schemes are constrained to use a particular
+ ({@link NamedGroup}. Not relevant for TLS 1.2 and below.
+
+
+ An implementation of that simulates the existence of "unknown"
+ identities to obscure the fact that there is no verifier for them.
+
+
+ Create a that implements the algorithm from RFC 5054
+ 2.5.1.3.
+
+ the defining the group that SRP is operating in.
+ the secret "seed key" referred to in RFC 5054 2.5.1.3.
+ an instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4680
+
+
+ Base interface to provide TLS authentication credentials.
+
+
+ Called by the protocol handler to report the server certificate.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the server certificate received.
+
+
+
+ Return client credentials in response to server's certificate request.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated and the details of
+ the .
+
+ details of the certificate request.
+ a object or null for no client authentication.
+
+
+
+ Return the session this client wants to resume, if any.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection, or
+ null to use a new session.
+
+
+
+ Return the external PSKs to offer in the ClientHello.
+ This will only be called when TLS 1.3 or higher is amongst the offered protocol versions.
+ an of instances, or null if none should be
+ offered.
+
+
+ (Int32 -> byte[])
+
+
+
+ If this client is offering TLS 1.3 or higher, this method may be called to determine for which
+ groups a key share should be included in the initial ClientHello.
+
+ Groups that were not included in the supported_groups extension (by will
+ be ignored. The protocol will then add a suitable key_share extension to the ClientHello extensions.
+
+ an of named group values, possibly empty or
+ null.
+
+
+
+
+
+
+ Notifies the client of the session that will be offered in ClientHello for resumption, if any.
+
+
+ This will be either the session returned from {@link #getSessionToResume()} or null if that session was
+ unusable. NOTE: the actual negotiated session_id is notified by .
+
+ The representing the resumable session to be offered for
+ this connection, or null if there is none.
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+
+
+
+
+
+
+ The protocol implementation validates that any server extensions received correspond to client
+ extensions sent.
+
+ If further processing of the server extensions is needed, it can be done in this callback. NOTE: This is
+ not called for session resumption handshakes.
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The ticket is
+ opaque to the client and clients MUST NOT examine the ticket under the assumption that it complies with e.g.
+ RFC 5077 4. "Recommended Ticket Construction".
+
+ The ticket.
+
+
+
+ Marker interface to distinguish a TLS client context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS context implementation.
+
+
+ Return true if this context is for a server, false otherwise.
+ true for a server based context, false for a client based one.
+
+
+ Used to get the resumable session, if any, used by this connection.
+
+ Only available after the handshake has successfully completed.
+
+ A representing the resumable session used by this connection, or null if
+ no resumable session available.
+
+
+
+ Used to get the session information for this connection.
+
+ Only available after the handshake has successfully completed. Use
+ to find out if the session is resumable.
+
+ A representing the session used by this connection.
+
+
+
+ Export the value of the specified channel binding.
+
+ Only available after the handshake has successfully completed.
+
+ A constant specifying the channel binding to
+ export.
+ A copy of the channel binding data as a byte[], or null if the binding could not be
+ determined.
+
+
+ Export (early data) keying material according to RFC 5705: "Keying Material Exporters for TLS", as
+ updated for TLS 1.3 (RFC 8446).
+
+ NOTE: for use in settings where an exporter is needed for 0-RTT data.
+
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS", as updated for
+ TLS 1.3 (RFC 8446) when negotiated.
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Support interface for generating a secret based on the credentials sent by a TLS peer.
+
+
+ Calculate an agreed secret based on our credentials and the public key credentials of our peer.
+
+ public key certificate of our TLS peer.
+ the agreed secret.
+ in case of an exception on generation of the secret.
+
+
+ Base interface for a class that decrypts TLS secrets.
+
+
+ Decrypt the passed in cipher text using the parameters available.
+ the parameters to use for the decryption.
+ the cipher text containing the secret.
+ a TLS secret.
+ on a parsing or decryption error.
+
+
+ Support interface for generating a signature based on our private credentials.
+
+
+ Generate a signature against the passed in hash.
+ a message digest calculated across the message the signature is to apply to.
+ an encoded signature.
+ if the hash cannot be processed, or there is an issue with the private
+ credentials.
+
+
+ Return the algorithm IDs for the signature algorithm and the associated hash it uses.
+ the full algorithm details for the signature.
+
+
+
+
+
+ Base interface for interfaces/classes carrying TLS credentials.
+
+
+ Return the certificate structure representing our identity.
+ our certificate structure.
+
+
+ (D)TLS DH_anon key exchange.
+
+
+ Interface for verifying explicit Diffie-Hellman group parameters.
+
+
+ Check whether the given DH group is acceptable for use.
+ the to check.
+ true if (and only if) the specified group is acceptable.
+
+
+ (D)TLS DH key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (D)TLS ECDH_anon key exchange (see RFC 4492).
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+ (Int32 -> byte[])
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object that can calculate a handshake hash.
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface for a key exchange factory offering a variety of specific algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This exception will be thrown (only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+ Object Identifiers associated with TLS extensions.
+
+
+ RFC 7633
+
+
+ Base interface for a (D)TLS endpoint.
+
+
+
+
+
+ Notifies the peer that a new handshake is about to begin.
+
+
+
+ Specify the timeout, in milliseconds, to use for the complete handshake process.
+
+ NOTE: Currently only respected by DTLS protocols. Negative values are not allowed. A timeout of zero means
+ an infinite timeout (i.e.the handshake will never time out).
+
+ the handshake timeout, in milliseconds.
+
+
+ Specify the time, in milliseconds, after which a handshake packet is resent.
+
+ NOTE: Currently only respected by DTLS protocols.
+
+ the handshake resend time, in milliseconds.
+
+
+
+ This option is provided as a last resort for interoperability with TLS peers that fail to correctly send a
+ close_notify alert at end of stream. Implementations SHOULD return true; caution is advised if returning
+ false without a full understanding of the implications.
+
+
+
+ This implementation supports RFC 7627 and will always negotiate the extended_master_secret
+ extension where possible. When connecting to a peer that does not offer/accept this extension, it is
+ recommended to abort the handshake.This option is provided for interoperability with legacy peers, although
+ some TLS features will be disabled in that case (see RFC 7627 5.4).
+
+ true if the handshake should be aborted when the peer does not negotiate the
+ extended_master_secret extension, or false to support legacy interoperability.
+
+
+ See RFC 5246 6.2.3.2. Controls whether block cipher encryption may randomly add extra padding
+ beyond the minimum.
+
+ Note that in configurations where this is known to be potential security risk this setting will be ignored
+ (and extended padding disabled). Extra padding is always supported when decrypting received records.
+
+ true if random extra padding should be added during block cipher encryption, or
+ false to always use the minimum amount of required padding.
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the ability to set
+ gmt_unix_time as an option only, off by default.".
+
+ NOTE: For a server that has negotiated TLS 1.3 (or later), or a client that has offered TLS 1.3 (or later),
+ this is not called and gmt_unix_time is not used.
+
+ true if the current time should be used in the gmt_unix_time field of Random, or
+ false if gmt_unix_time should contain a cryptographically random value.
+
+
+ RFC 5746 3.4/3.6. In case this is false, peers may want to terminate the handshake instead of
+ continuing; see Section 4.1/4.3 for discussion.
+
+ NOTE: TLS 1.3 forbids renegotiation, so this is never called when TLS 1.3 (or later) was negotiated.
+
+
+
+
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ Return a instance that will control the generation of heartbeats
+ locally (if permitted by the remote peer), or null to not generate heartbeats. Heartbeats are described in
+ RFC 6520.
+ an instance of .
+
+
+
+ Return the heartbeat mode applicable to the remote peer. Heartbeats are described in RFC 6520.
+
+
+ See enumeration class for appropriate return values.
+
+ the value.
+
+
+ Indicates whether a DTLS connection should ignore corrupt records (bad_record_mac) instead of
+ failing the connection.
+ Called only once at the start of a connection and applies throughout.
+ The value true to ignore corrupt DTLS records, or false to fail the connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method is called, when a change cipher spec message is received.
+ If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network.
+
+ The method will return immediately, if there is still some data left in the buffer, or block until some
+ application data has been read from the network.
+
+ The buffer where the data will be copied to.
+ The position where the data will be placed in the buffer.
+ The maximum number of bytes to read.
+ The number of bytes read.
+ If something goes wrong during reading data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Write some application data.
+
+ Fragmentation is handled internally. Usable in both blocking/non-blocking modes.
+ In blocking mode, the output will be automatically sent via the underlying transport. In non-blocking mode,
+ call to get the output bytes to send to the peer.
+ This method must not be called until after the initial handshake is complete. Attempting to call it earlier
+ will result in an .
+
+ The buffer containing application data to send.
+ The offset at which the application data begins
+ The number of bytes of application data.
+ If called before the initial handshake has completed.
+
+ If connection is already closed, or for encryption or transport errors.
+
+
+
+
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+
+
+
+
+
+
+
+ Equivalent to OfferInput(input, 0, input.Length)
.
+ The input buffer to offer.
+
+
+
+
+ Offer input from an arbitrary source.
+ Only allowed in non-blocking mode.
+ This method will decrypt and process all records that are fully available. If only part of a record is
+ available, the buffer will be retained until the remainder of the record is offered.
+ If any records containing application data were processed, the decrypted data can be obtained using
+ . If any records containing protocol data were processed, a
+ response may have been generated. You should always check to see if there is any available output after
+ calling this method by calling .
+
+ The input buffer to offer.
+ The offset within the input buffer that input begins.
+ The number of bytes of input being offered.
+ If an error occurs while decrypting or processing a record.
+
+
+ Gets the amount of received application data.
+ A call to is guaranteed to be able to return at least
+ this much data.
+ Only allowed in non-blocking mode.
+
+ The number of bytes of available application data.
+
+
+ Retrieves received application data.
+
+ Use to check how much application data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned.
+ Only allowed in non-blocking mode.
+
+ The buffer to hold the application data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+ Gets the amount of encrypted data available to be sent.
+
+ A call to is guaranteed to be able to return at least this much
+ data. Only allowed in non-blocking mode.
+
+ The number of bytes of available encrypted data.
+
+
+ Retrieves encrypted data to be sent.
+
+ Use to check how much encrypted data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned. Only allowed in non-blocking mode.
+
+ The buffer to hold the encrypted data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Make sure the 'buf' is now empty. Fail otherwise.
+ The to check.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Processor interface for a PSK identity.
+
+
+ Base interface for an object that can process a PSK identity.
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS RSA key exchange.
+
+
+ Interface describing a TLS server endpoint.
+
+
+ Return the specified session, if available.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ the ID of the session to resume.
+ A with the specified session ID, or null.
+
+
+
+ Return the external PSK to select from the ClientHello.
+
+ WARNING: EXPERIMENTAL FEATURE, UNSTABLE API
+ Note that this will only be called when TLS 1.3 or higher is amongst the offered protocol versions, and one
+ or more PSKs are actually offered.
+
+ an of instances.
+ The corresponding to the selected identity, or null to not select
+ any.
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Return server credentials to use.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated.
+
+ a object or null for anonymous key exchanges.
+
+
+
+
+ This method will be called (only) if the server included an extension of type "status_request" with empty
+ "extension_data" in the extended server hello. See RFC 3546 3.6. Certificate Status Request. If a
+ non-null is returned, it is sent to the client as a handshake message of
+ type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Called by the protocol handler to report the client certificate, only if
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See RFC 5077
+ 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket.
+
+
+
+ Server certificate carrier interface.
+
+
+ Marker interface to distinguish a TLS server context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a carrier object for a TLS session.
+
+
+ Interface for verifying SRP config needs to conform to.
+
+
+ Check whether the given SRP configuration is acceptable for use.
+ the to check.
+ true if (and only if) the specified configuration is acceptable.
+
+
+ Processor interface for an SRP identity.
+
+
+ Base interface for an object that can return login parameters from an SRP identity.
+
+
+ Lookup the corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC 5054 2.5.1.3.
+ is provided for this purpose.
+
+ the SRP identity sent by the connecting client.
+ the for the specified identity, or else 'simulated' parameters
+ if the identity is not recognized. A null value is also allowed, but not recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Whether a server can select the specified cipher suite given the available signature algorithms
+ for ServerKeyExchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check the signature algorithm for certificates in the peer's CertPath as specified in RFC 5246
+ 7.4.2, 7.4.4, 7.4.6 and similar rules for earlier TLS versions.
+
+ The supplied CertPath should include the trust anchor (its signature algorithm isn't checked, but in the
+ general case checking a certificate requires the issuer certificate).
+
+ if any certificate in the CertPath (excepting the trust anchor) has a
+ signature algorithm that is not one of the locally supported signature algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a pre_master_secret and send it encrypted to the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 5.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ see for valid constants.
+ valid lengths from 0 to 255.
+
+
+ see for valid constants.
+
+
+ valid lengths from 0 to 255.
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ The failure code associated with this exception, if one is set.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value the value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of the specified length, padded with
+ leading zeros as necessary.
+ @param length the fixed length of the result.
+ @param n the value to be converted.
+ @return a byte array padded to a fixed length with leading zeros.
+
+
+ Write the passed in value as unsigned bytes to the specified buffer range, padded with
+ leading zeros as necessary.
+
+ @param n
+ the value to be converted.
+ @param buf
+ the buffer to which the value is written.
+ @param off
+ the start offset in array buf
at which the data is written.
+ @param len
+ the fixed length of data written (possibly padded with leading zeros).
+
+
+
+ Creates a Random BigInteger from the secure random of a given bit length.
+
+
+
+
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+ Interface for matching objects in an .
+ The contravariant type of selectable objects.
+
+
+ Match the passed in object, returning true if it would be selected by this selector, false
+ otherwise.
+ The object to be matched.
+ true
if the objects is matched by this selector, false otherwise.
+
+
+ A generic interface describing a simple store of objects.
+ The covariant type of stored objects.
+
+
+ Enumerate the (possibly empty) collection of objects matched by the given selector.
+ The used to select matching objects.
+ An of the matching objects.
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ The DateTime value will be converted to UTC (using before
+ conversion.
+ A DateTime value not before the epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before the epoch.
+
+
+
+ Create a UTC DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+ 'unixMs' is before 'MinUnixMs' or after 'MaxUnixMs'.
+
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Return a byte array representing the implementing object.
+ An encoding of this object as a byte array.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ An
+
+
+
+
+
+ A
+
+
+
+
+
+ Seek ':" up to the limit.
+
+
+
+
+
+
+ Consume the dashes
+
+
+
+
+
+ Skip white space leave char in stream.
+
+
+
+
+ Read forward consuming the expected string.
+
+ expected string
+ false if not consumed
+
+
+
+ Consume until dash.
+
+ true if stream end not met
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ In case of IO failure.
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ The size of temporary buffer to use.
+ In case of IO failure.
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType
can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID
must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType
is
+ otherObjectDigest
.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID
must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null
if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null
if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null
if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extensions object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector
like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true
if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null
)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null
is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of List
s
+ made up of an Integer
in the first entry and a DER encoded
+ byte array or a String
in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null
)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null
is
+ given any will do.
+
+ The collection consists of GeneralName
objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of List
s
+ made up of an Integer
in the first entry and a DER encoded
+ byte array or a String
in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector
implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector
objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair
, this method
+ returns false
.
+
+ The X509CertificatePair
to be tested.
+ true
if the object matches this selector.
+
+
+
+ An ISet
of DerObjectIdentifier
objects.
+
+
+
+
+ An ICollection
of X509Name
objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null
is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate
being checked (or
+ null
)
+ @see #getAttrCertificateChecking()
+
+
+ If true
only complete CRLs are returned. Defaults to
+ false
.
+
+ @return true
if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false
.
+
+ @return Returns true
if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false
.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null
.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return the DER encoding of this certificate.
+
+ A byte array containing the DER encoding of this certificate.
+ If there is an error encoding the certificate.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ If verifier provider is not appropriate or the certificate signature algorithm
+ is invalid.
+
+
+ Verify the certificate's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the certificate's alternative
+ signature.
+ If verifier provider is not appropriate or the certificate alternative signature
+ algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Verify the CRL's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the CRL's alternative signature.
+
+ If verifier provider is not appropriate or the CRL alternative signature
+ algorithm is invalid.
+
+
+
+ Return the DER encoding of this CRL.
+
+ A byte array containing the DER encoding of this CRL.
+ If there is an error encoding the CRL.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false
{@link #getCertificateIssuer()} will always
+ return null
, previousCertificateIssuer
is
+ ignored. If this isIndirect
is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer
is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true
if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+ Value of is ignored.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ Create a builder for a version 2 CRL, initialised with another CRL.
+ Template CRL to base the new one on.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+ Create a generator for a version 3 certificate, initialised with another certificate.
+ Template certificate to base the new one on.
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/lib/net6.0/BouncyCastle.Cryptography.dll b/packages/BouncyCastle.Cryptography.2.2.1/lib/net6.0/BouncyCastle.Cryptography.dll
new file mode 100644
index 0000000..637242d
Binary files /dev/null and b/packages/BouncyCastle.Cryptography.2.2.1/lib/net6.0/BouncyCastle.Cryptography.dll differ
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/lib/net6.0/BouncyCastle.Cryptography.xml b/packages/BouncyCastle.Cryptography.2.2.1/lib/net6.0/BouncyCastle.Cryptography.xml
new file mode 100644
index 0000000..66126cb
--- /dev/null
+++ b/packages/BouncyCastle.Cryptography.2.2.1/lib/net6.0/BouncyCastle.Cryptography.xml
@@ -0,0 +1,29164 @@
+
+
+
+ BouncyCastle.Cryptography
+
+
+
+ Elliptic curve registry for ANSSI.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Return a representing the contents of the BIT STRING. The final byte, if any,
+ may include pad bits. See .
+ A with its source as the BIT STRING content.
+
+
+
+ Return a representing the contents of the BIT STRING, where the content is
+ expected to be octet-aligned (this will be automatically checked during parsing).
+ A with its source as the BIT STRING content.
+
+
+
+ Return the number of pad bits, if any, in the final byte, if any, read from
+ .
+
+ This number is in the range zero to seven. That number of the least significant bits of the final byte, if
+ any, are not part of the contents and should be ignored. NOTE: Must be called AFTER the stream has been
+ fully processed. (Does not need to be called if was used instead of
+ .
+
+ The number of pad bits. In the range zero to seven.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ Mutable class for building ASN.1 constructed objects such as SETs or SEQUENCEs.
+
+
+ GeneralizedTime ASN.1 type
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ Return an ObjectDescriptor from the passed in object.
+
+ @param obj an ASN1ObjectDescriptor or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ Return an ObjectDescriptor from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an octet string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ Return the content of the OCTET STRING as a .
+ A represnting the OCTET STRING's content.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Needed for open types, until we have better type-guided parsing support. Use sparingly for other
+ purposes, and prefer {@link #getExplicitBaseTagged()}, {@link #getImplicitBaseTagged(int, int)} or
+ {@link #getBaseUniversal(boolean, int)} where possible. Before using, check for matching tag
+ {@link #getTagClass() class} and {@link #getTagNo() number}.
+
+
+ Needed for open types, until we have better type-guided parsing support. Use
+ sparingly for other purposes, and prefer {@link #getExplicitBaseTagged()} or
+ {@link #getBaseUniversal(boolean, int)} where possible. Before using, check
+ for matching tag {@link #getTagClass() class} and {@link #getTagNo() number}.
+
+
+
+
+
+ Needed for open types, until we have better type-guided parsing support.
+
+ Use sparingly for other purposes, and prefer or
+ where possible. Before using, check for matching tag
+ class and number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UTCTime ASN.1 type
+
+
+ return a UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an adjusted date in the range of 1950 - 2049.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ iso.org.dod.internet.private.enterprise.legion-of-the-bouncy-castle
+ 1.3.6.1.4.1.22554
+
+
+ pbe(1) algorithms
+ 1.3.6.1.4.1.22554.1
+
+
+ SHA-1(1)
+ 1.3.6.1.4.1.22554.1.1
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ SPHINCS+
+
+
+ Picnic
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ X.509 extension(4) values
+
+ 1.3.6.1.4.1.22554.4
+
+
+ KEM(4) algorithms
+
+
+ Classic McEliece
+
+
+ SABER
+
+
+ SIKE
+
+
+ Kyber
+
+
+ BIKE
+
+
+ HQC
+
+
+ Extension to tie an alternate certificate to the containing certificate.
+
+ LinkedCertificate := SEQUENCE {
+ digest DigestInfo, -- digest of PQC certificate
+ certLocation GeneralName, -- location of PQC certificate
+ certIssuer [0] Name OPTIONAL, -- issuer of PQC cert (if different from current certificate)
+ cACerts [1] GeneralNames OPTIONAL, -- CA certificates for PQC cert (one of more locations)
+ }
+
+
+
+ A parser for indefinite-length BIT STRINGs.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ See https://www.bsi.bund.de/cae/servlet/contentblob/471398/publicationFile/30615/BSI-TR-03111_pdf.pdf
+
+
+ 0.4.0.127.0.7.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA-1
+ OID: 0.4.0.127.0.7.1.1.5.1.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA224
+ OID: 0.4.0.127.0.7.1.1.5.1.1.2
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA256
+ OID: 0.4.0.127.0.7.1.1.5.1.1.3
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA384
+ OID: 0.4.0.127.0.7.1.1.5.1.1.4
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA512
+ OID: 0.4.0.127.0.7.1.1.5.1.1.5
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function RIPEMD160
+ OID: 0.4.0.127.0.7.1.1.5.1.1.6
+
+
+ Key Derivation Function for Session Keys
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ CertAnnContent ::= CMPCertificate
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedKey
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 19}, < absent >
+ GenRep: {id-it 19}, CertReqTemplateContent | < absent >
+
+ CertReqTemplateValue ::= CertReqTemplateContent
+
+ CertReqTemplateContent ::= SEQUENCE {
+ certTemplate CertTemplate,
+ keySpec Controls OPTIONAL }
+
+ Controls ::= SEQUENCE SIZE (1..MAX) OF AttributeTypeAndValue
+
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ certReqId INTEGER,
+ statusInfo PKIStatusInfo OPTIONAL,
+ hashAlg [0] AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} OPTIONAL
+ }
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Rand is the inner type
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+ id-PasswordBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 13}
+
+
+ id-DHBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 30}
+
+
+ RFC 4120: it-id: PKIX.4 = 1.3.6.1.5.5.7.4
+ RFC 4120: 1.3.6.1.5.5.7.4.1
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.2
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.3
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.4
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.5
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.6
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.7
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.10
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.11
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.12
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.13
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.14
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.15
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.16
+
+
+ Update 16, RFC 4210
+ {id-it 17}
+
+
+ Update 16, RFC 4210
+ GenRep: {id-it 18}, RootCaKeyUpdateContent
+
+
+ Update 16, RFC 4210
+ {id-it 19}
+
+
+ Update 16, RFC 4210
+ GenMsg: {id-it 20}, RootCaCertValue
+
+
+ Update-16 to RFC 4210
+ id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21}
+
+
+ RFC 4211: it-pkip: PKIX.5 = 1.3.6.1.5.5.7.5
+
+
+ RFC 4211: it-regCtrl: 1.3.6.1.5.5.7.5.1
+
+
+ RFC 4211: it-regInfo: 1.3.6.1.5.5.7.5.2
+
+
+ 1.3.6.1.5.5.7.5.1.1
+
+
+ 1.3.6.1.5.5.7.5.1.2
+
+
+ 1.3.6.1.5.5.7.5.1.3
+
+
+ 1.3.6.1.5.5.7.5.1.4
+
+
+ 1.3.6.1.5.5.7.5.1.5
+
+
+ 1.3.6.1.5.5.7.5.1.6
+
+
+ From RFC4210:
+ id-regCtrl-altCertTemplate OBJECT IDENTIFIER ::= {id-regCtrl 7}; 1.3.6.1.5.5.7.1.7
+
+
+ RFC 4211: it-regInfo-utf8Pairs: 1.3.6.1.5.5.7.5.2.1
+
+
+ RFC 4211: it-regInfo-certReq: 1.3.6.1.5.5.7.5.2.1
+
+
+ 1.2.840.113549.1.9.16.1.21
+
+ id-ct OBJECT IDENTIFIER ::= { id-smime 1 } -- content types
+
+ id-ct-encKeyWithID OBJECT IDENTIFIER ::= {id-ct 21}
+
+
+
+ id-regCtrl-algId OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 }
+
+
+ id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 }
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it TBD1}, SEQUENCE SIZE (1..MAX) OF CRLStatus
+ GenRep: {id-it TBD2}, SEQUENCE SIZE (1..MAX) OF
+ CertificateList | < absent >
+
+ CRLSource ::= CHOICE {
+ dpn [0] DistributionPointName,
+ issuer [1] GeneralNames }
+
+
+
+ CRLStatus ::= SEQUENCE {
+ source CRLSource,
+ thisUpdate Time OPTIONAL }
+
+
+ DHBMParameter ::= SEQUENCE {
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ NestedMessageContent ::= PKIMessages
+
+
+ OOBCert ::= CMPCertificate
+
+
+
+ OOBCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the DER encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PBMParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIConfirmContent ::= NULL
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL }
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId
+ OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 20}, RootCaCertValue | < absent >
+ GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent >
+
+ RootCaCertValue ::= CMPCertificate
+
+ RootCaKeyUpdateValue ::= RootCaKeyUpdateContent
+
+ RootCaKeyUpdateContent ::= SEQUENCE {
+ newWithNew CMPCertificate,
+ newWithOld [0] CMPCertificate OPTIONAL,
+ oldWithNew [1] CMPCertificate OPTIONAL
+ }
+
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ From RFC 6211
+
+ CMSAlgorithmProtection ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ signatureAlgorithm [1] SignatureAlgorithmIdentifier OPTIONAL,
+ macAlgorithm [2] MessageAuthenticationCodeAlgorithm
+ OPTIONAL
+ }
+ (WITH COMPONENTS { signatureAlgorithm PRESENT,
+ macAlgorithm ABSENT } |
+ WITH COMPONENTS { signatureAlgorithm ABSENT,
+ macAlgorithm PRESENT })
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ (IMPLICIT TAGS)
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PKIPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+
+
+ Constructor with a single pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfo the pubInfo to be published (can be null if don't care is required).
+
+
+ Constructor with multiple pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfos the pubInfos to be published (can be null if don't care is required).
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Elliptic curve registry for GOST 3410-2001 / 2012.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ Registry of available named parameters for GOST 3410-94.
+
+
+ Look up the for the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Look up the for the parameter set with the given
+ OID.
+ The OID for the parameter set.
+
+
+ Look up the OID of the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Enumerate the available parameter set names in this registry.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Boolean from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null
if not set.
+ @param indirectReference The indirect reference or null
if not set.
+ @param dataValueDescriptor The data value descriptor or null
if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null
if not set.
+ @param indirectReference The indirect reference or null
if not set.
+ @param dataValueDescriptor The data value descriptor or null
if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0
single-ASN1-type
+ 1
OCTET STRING
+ 2
BIT STRING
+
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ IA5String object - this is an Ascii string.
+
+
+ return an IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ Apply the correct validation for an INTEGER primitive following the BER rules.
+
+ @param bytes The raw encoding of the integer.
+ @return true if the (in)put fails this validation.
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a numeric string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an OID from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a printable string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a T61 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ UniversalString object.
+
+
+ return a universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a universal string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a UTF8 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return a videotex string from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a videotex string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ VisibleString object.
+
+
+ return a visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a visible string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ A Definite length BIT STRING
+
+
+ Parser for a DL encoded BIT STRING.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ Parser for definite-length tagged objects.
+
+
+ Edwards Elliptic Curve Object Identifiers (RFC 8410)
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier
value
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier
value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param as CommitmentTypeQualifier
structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object
value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ Elliptic curve registry for GM.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null
.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos
is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName
or certRef
MUST be
+ null
.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName
or certRef
MUST be
+ null
.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems
is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ No longer provides any laziness.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+
+ KMACwithSHAKE128-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 256, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+
+ KMACwithSHAKE256-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 512, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+ Elliptic curve registry for NIST curves.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ 2.16.840.1.101.3.4.3.5
+
+
+ 2.16.840.1.101.3.4.3.6
+
+
+ 2.16.840.1.101.3.4.3.7
+
+
+ 2.16.840.1.101.3.4.3.8
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ RFC 6211 - id-aa-cmsAlgorithmProtect OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) 52 }
+
+
+
+ id-alg-AEADChaCha20Poly1305 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) smime(16) alg(3) 18 }
+
+ AEADChaCha20Poly1305Nonce ::= OCTET STRING (SIZE(12))
+
+
+
+ id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) alg(3) 17 }
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ RFC 5958
+
+
+ [IMPLICIT TAGS]
+
+ OneAsymmetricKey ::= SEQUENCE {
+ version Version,
+ privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
+ privateKey PrivateKey,
+ attributes [0] Attributes OPTIONAL,
+ ...,
+ [[2: publicKey [1] PublicKey OPTIONAL ]],
+ ...
+ }
+
+ PrivateKeyInfo ::= OneAsymmetricKey
+
+ Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
+
+ PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
+ { PUBLIC-KEY,
+ { PrivateKeyAlgorithms } }
+
+ PrivateKey ::= OCTET STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ PublicKey ::= BIT STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
+
+
+
+ Return true if a public key is present, false otherwise.
+
+
+ For when the public key is an ASN.1 encoding.
+
+
+ Return the public key as a raw bit string.
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ Elliptic curve registry for the SEC standard.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ Elliptic curve registry for curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt .
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+ Ukrainian object identifiers
+
+ {iso(1) member-body(2) Ukraine(804) root(2) security(1) cryptography(1) pki(1)}
+
+ { ... pki-alg(1) pki-alg-sym(3) Dstu4145WithGost34311(1) PB(1)}
+
+ DSTU4145 in polynomial basis has 2 oids, one for little-endian representation and one for big-endian
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ Parse ASN.1 objects from input , and write them to the output.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+ Holding class for the AttributeTypeAndValue structures that make up an RDN.
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ Holding class for a single Relative Distinguished Name (RDN).
+
+
+ Create a single valued RDN.
+
+ @param oid RDN type.
+ @param value RDN value.
+
+
+ Create a multi-valued RDN.
+
+ @param aAndVs attribute type/value pairs making up the RDN
+
+
+ Return the number of AttributeTypeAndValue objects in this RDN,
+
+ @return size of RDN, greater than 1 if multi-valued.
+
+
+ *
+ * RelativeDistinguishedName ::=
+ * SET OF AttributeTypeAndValue
+
+ * AttributeTypeAndValue ::= SEQUENCE {
+ * type AttributeType,
+ * value AttributeValue }
+ *
+ * @return this object as its ASN1Primitive type
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+ X.509 Section 9.8.3.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension. It shall contain
+ the algorithm identifier for the alternative digital signature algorithm used by the signer when creating an alternative
+ digital signature and by the relying party when validating the alternative digital signature.
+
+ altSignatureAlgorithm EXTENSION ::= {
+ SYNTAX AltSignatureAlgorithm
+ IDENTIFIED BY id-ce-altSignatureAlgorithm }
+
+ AltSignatureAlgorithm ::= AlgorithmIdentifier{{SupportedAlgorithms}}
+
+ When the altSignatureAlgorithm extension is included in a particular value that is an instance of a data type that
+ supports extensions, the altSignatureValue extension shall also be included.
+
+ NOTE 1 – By having a separate altSignatureAlgorithm extension, instead of having it combined with the
+ altSignatureValue extension, the alternative digital signature algorithm is protected by the alternative signature.
+ This extension may be flagged either as critical or as non-critical.
+
+ NOTE 2 – It is recommended that it be flagged as non-critical. Flagging it as critical would require all relying parties to understand
+ the extension and the alternative public-key algorithms
+
+
+ X.509 Section 9.8.4.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension.
+ This alternative signature shall be created by the issuer using its alternative private key, and it shall be verified using the
+ alternative public key of the issuer.
+
+ altSignatureValue EXTENSION ::= {
+ SYNTAX AltSignatureValue
+ IDENTIFIED BY id-ce-altSignatureValue }
+
+ AltSignatureValue ::= BIT STRING
+
+ This extension can only be created by a signer holding a multiple cryptographic algorithms public-key certificate. When
+ creating the alternative digital signature on an issued public-key certificate or CRL, the signer shall use its alternative
+ private key.
+
+ The procedures for creating and validating alternative digital signatures are specified in:
+
+ - clause 7.2.2 for public-key certificates;
+ - clause 7.10.3 for CRLs: and
+ - clause 11.4 for AVLs.
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText
class, used in
+ CertificatePolicies
X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize
here.
+
+
+
+ Creates a new DisplayText
instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText
instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText
instance.
+ Useful when reading back a DisplayText
class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable
instance.
+
+
+ Returns the stored string
object.
+
+ @return the stored text as a string
.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null
, zero is assumed, if
+ maximum is null
, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] EXPLICIT IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] EXPLICIT GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax
as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true
then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ Microsoft Server Gated Crypto (msSGC).
+ see https://www.alvestrand.no/objectid/1.3.6.1.4.1.311.10.3.3.html
+
+
+ Netscape Server Gated Crypto (nsSGC).
+ see https://www.alvestrand.no/objectid/2.16.840.1.113730.4.1.html
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference
class, used in
+ CertificatePolicies
X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization a String
value
+ @param numbers a Vector
value
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization a String
value
+ @param noticeNumbers an ASN1EncodableVector
value
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector
value
+
+
+ Creates a new NoticeReference
instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence
value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object
method here.
+
+ @return a Asn1Object
value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType
is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID
must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest
.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ The OtherName object.
+
+ OtherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+
+
+ OtherName factory method.
+ @param obj the object used to construct an instance of
+ OtherName
. It must be an instance of OtherName
+
or ASN1Sequence
.
+ @return the instance of OtherName
built from the
+ supplied object.
+ @throws java.lang.IllegalArgumentException if the object passed
+ to the factory is not an instance of OtherName
or something that
+ can be converted into an appropriate ASN1Sequence
.
+
+
+ Base constructor.
+ @param typeID the type of the other name.
+ @param value the ANY object that represents the value.
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings
instance.
+
+ @param seq an Asn1Sequence
constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings
instance.
+
+ @param mappings a HashMap
value that maps
+ string
oids
+ to other string
oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo
instance.
+
+ @param policyQualifierId a PolicyQualifierId
value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo
containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string
.
+
+
+ Creates a new PolicyQualifierInfo
instance.
+
+ @param as PolicyQualifierInfo
X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object
value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax
. It must be an instance of RoleSyntax
+
or Asn1Sequence
.
+ @return the instance of RoleSyntax
built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax
or
+ Asn1Sequence
.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName)
.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string
argument representing
+ the role name, builds a GeneralName
to hold the role name
+ and calls the constructor that takes a GeneralName
.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax
by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence
that holds
+ the encoded elements used to build this RoleSyntax
.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames
holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName
holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string
object.
+ @return the role name of this RoleSyntax represented as a
+ string
object.
+
+
+ Gets the role authority as a string[]
object.
+ @return the role authority of this RoleSyntax represented as a
+ string[]
array.
+
+
+ Implementation of the method ToAsn1Object
as
+ required by the superclass ASN1Encodable
.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ X.509 Section 9.8.2.
+
+ This public-key certificate extension, when present, shall contain the subject’s alternative public key information
+
+ subjectAltPublicKeyInfo EXTENSION ::= {
+ SYNTAX SubjectAltPublicKeyInfo
+ IDENTIFIED BY id-ce-subjectAltPublicKeyInfo }
+
+ SubjectAltPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier{{SupportedAlgorithms}},
+ subjectAltPublicKey BIT STRING }
+
+ The SubjectAltPublicKeyInfo data type has the following components:
+
+ - the algorithm subcomponent, which shall hold the algorithm that this public key is an instance of
+ - the subjectAltPublicKey subcomponent, which shall hold the alternative public key
+
+ This extension may be flagged as critical or as non-critical.
+
+ NOTE – It is recommended that it be flagged as non-critical. Flagging it as critical would require relying parties to understand this
+ extension and the alternative public-key algorithm.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj
can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null
.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj
can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj
can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList
of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList
.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice
class, used in
+ CertificatePolicies
X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice
instance.
+
+ @param noticeRef a NoticeReference
value
+ @param explicitText a DisplayText
value
+
+
+ Creates a new UserNotice
instance.
+
+ @param noticeRef a NoticeReference
value
+ @param str the explicitText field as a string.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ the subject’s alternative public key information
+
+
+ the algorithm identifier for the alternative digital signature algorithm.
+
+
+ alternative signature shall be created by the issuer using its alternative private key.
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+ return the parsed value of the extension represented by the object identifier
+ passed in.
+
+ @return the parsed value of the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A unified elliptic curve registry of the various standard-specific registries.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in all the registries.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ Elliptic curve registry for the curves defined in X.962 EC-DSA.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2
.
+ @param primeP The prime p
defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m
.
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m
.
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ Packet representing AEAD encrypted data. At the moment this appears to exist in the following
+ expired draft only, but it's appearing despite this.
+
+ @ref https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ is detected and fails.
+
+ By default a missing CRC will not cause an exception. To force CRC detection use:
+
+ ArmoredInputStream aIn = ...
+
+ aIn.setDetectMissingCRC(true);
+
+
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Change how the stream should react if it encounters missing CRC checksum.
+ The default value is false (ignore missing CRC checksums). If the behavior is set to true,
+ an {@link IOException} will be thrown if a missing CRC checksum is encountered.
+
+ @param detectMissing ignore missing CRC sums
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. Any current value(s) under the same name will be
+ replaced by the new one. A null value will clear the entry for name. *
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Set an additional header entry. The current value(s) will continue to exist together
+ with the new one. Adding a null value has no effect.
+
+ @param name the name of the header entry.
+ @param value the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Base constructor specifying whether or not to use packets in the new format wherever possible.
+
+ Output stream to write to.
+ true if use new format packets, false if backwards compatible
+ preferred.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ Return the signatures fingerprint.
+ @return fingerprint (digest prefix) of the signature
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the Modification Detection (packets 18 and 19)
+
+
+ Identifier for the AEAD Encrypted Data Packet (packet 20) and version 5
+ Symmetric-Key Encrypted Session Key Packets (packet 3)
+
+
+ Identifier for the Version 5 Public-Key Packet format and corresponding new
+ fingerprint format
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ packet giving the intended recipient fingerprint.
+
+
+ packet giving the issuer key fingerprint.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ Regexp Packet - RFC 4880 5.2.3.14. Note: the RFC says the byte encoding is to be null terminated.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ RFC 4880, Section 5.2.3.25 - Signature Target subpacket.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a signing subkey to the key ring to be generated with default certification and a primary key binding signature.
+
+ The key pair.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification using SHA-1.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+
+ Add a signing subkey with specific hashed and unhashed packets associated with it and
+ default certifications, including the primary-key binding signature.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+ Thrown if the key checksum is invalid.
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+
+ Read all available objects, returning only those that are assignable to the specified type.
+
+ An containing the filtered objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The key ID associated with the public key.
+
+
+ The fingerprint of the public key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this could be a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Return any userIDs associated with the key in raw byte form.
+ No attempt is made to convert the IDs into strings.
+ An IEnumerable of byte[].
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Return any signatures associated with the passed in key identifier keyID.
+ the key id to be matched.
+ An IEnumerable of PgpSignature objects issued by the key with keyID.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Encode the key to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed in raw byte form.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from (in its raw byte form).
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+
+ Merge the given local public key with another, potentially fresher copy. The resulting public key
+ contains the sum of both keys' user-ids and signatures.
+
+
+ If joinTrustPackets is set to true and the copy carries a trust packet, the joined key will copy the
+ trust-packet from the copy. Otherwise, it will carry the trust packet of the local key.
+
+ local public key.
+ copy of the public key (e.g. from a key server).
+ if true, trust packets from the copy are copied over into the resulting key.
+
+ if true, subkey signatures on the copy will be present in the
+ merged key, even if key was not a subkey before.
+ joined key.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ This method will ignore trust packets on the second copy of the certificate and instead
+ copy the local certificate's trust packets to the joined certificate.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @return joined key ring
+ @throws PGPException
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ For each subkey holds: If joinTrustPackets is set to true and the second key is carrying a trust packet,
+ the trust packet will be copied to the joined key.
+ Otherwise, the joined key will carry the trust packet of the local copy.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @param joinTrustPackets if true, trust packets from the second certificate copy will be carried over into the joined certificate
+ @param allowSubkeySigsOnNonSubkey if true, the resulting joined certificate may carry subkey signatures on its primary key
+ @return joined certificate
+ @throws PGPException
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ The fingerprint of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return any keys carrying a signature issued by the key represented by keyID.
+
+ @param keyID the key id to be matched against.
+ @return an iterator (possibly empty) of PGPPublicKey objects carrying signatures from keyID.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return the digest prefix of the signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+ Encode the signature to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Base constructor, creates an empty generator.
+
+
+
+
+ Constructor for pre-initialising the generator from an existing one.
+
+
+ sigSubV an initial set of subpackets.
+
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Return a copy of the subpackets in this vector.
+
+ @return an array containing the vector subpackets in order.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+ Return the EC curve name for the passed in OID.
+
+ @param oid the EC curve object identifier in the PGP key
+ @return a string representation of the OID.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ Wrap a PKIMessage ASN.1 structure.
+
+ PKI message.
+
+
+
+ Create a PKIMessage from the passed in bytes.
+
+ BER/DER encoding of the PKIMessage
+
+
+
+ Return true if this message has protection bits on it. A return value of true
+ indicates the message can be used to construct a ProtectedPKIMessage.
+
+
+
+
+ Wrapper for a PKIMessage with protection attached to it.
+
+
+
+
+ Wrap a general message.
+
+ If the general message does not have protection.
+ The General message
+
+
+
+ Wrap a PKI message.
+
+ If the PKI message does not have protection.
+ The PKI message
+
+
+ Message header
+
+
+ Message body
+
+
+
+ Return the underlying ASN.1 structure contained in this object.
+
+ PkiMessage structure
+
+
+
+ Determine whether the message is protected by a password based MAC. Use verify(PKMACBuilder, char[])
+ to verify the message if this method returns true.
+
+ true if protection MAC PBE based, false otherwise.
+
+
+
+ Return the extra certificates associated with this message.
+
+ an array of extra certificates, zero length if none present.
+
+
+
+ Verify a message with a public key based signature attached.
+
+ a factory of signature verifiers.
+ true if the provider is able to create a verifier that validates the signature, false otherwise.
+
+
+
+ Verify a message with password based MAC protection.
+
+ MAC builder that can be used to construct the appropriate MacCalculator
+ the MAC password
+ true if the passed in password and MAC builder verify the message, false otherwise.
+ if algorithm not MAC based, or an exception is thrown verifying the MAC.
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Add a generator to produce the recipient info required.
+
+ a generator of a recipient info object.
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ a holding class for a file of data to be processed.
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained in this message.
+
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained in this message.
+
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as string objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Dictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in X.509 certificate issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certificate X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ Protected constructor. In some cases clients have their own idea about how to encode
+ the signed attributes and calculate the signature. This constructor is to allow developers
+ to deal with that by extending off the class and overriding e.g. SignedAttributes property.
+
+ @param baseInfo the SignerInformation to base this one on.
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+
+ Carrier for an authenticator control.
+
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+
+
+
+ Create a CertificateRequestMessage from the passed in bytes.
+
+ BER/DER encoding of the CertReqMsg structure.
+
+
+
+ Return the underlying ASN.1 object defining this CertificateRequestMessage object.
+
+ A CertReqMsg
+
+
+
+ Return the certificate template contained in this message.
+
+ a CertTemplate structure.
+
+
+
+ Return whether or not this request has control values associated with it.
+
+ true if there are control values present, false otherwise.
+
+
+
+ Return whether or not this request has a specific type of control value.
+
+ the type OID for the control value we are checking for.
+ true if a control value of type is present, false otherwise.
+
+
+
+ Return a control value of the specified type.
+
+ the type OID for the control value we are checking for.
+ the control value if present, null otherwise.
+
+
+
+ Return whether or not this request message has a proof-of-possession field in it.
+
+ true if proof-of-possession is present, false otherwise.
+
+
+
+ Return the type of the proof-of-possession this request message provides.
+
+ one of: popRaVerified, popSigningKey, popKeyEncipherment, popKeyAgreement
+
+
+
+ Return whether or not the proof-of-possession (POP) is of the type popSigningKey and
+ it has a public key MAC associated with it.
+
+ true if POP is popSigningKey and a PKMAC is present, false otherwise.
+
+
+
+ Return whether or not a signing key proof-of-possession (POP) is valid.
+
+ a provider that can produce content verifiers for the signature contained in this POP.
+ true if the POP is valid, false otherwise.
+ if there is a problem in verification or content verifier creation.
+ if POP not appropriate.
+
+
+
+ Return the ASN.1 encoding of the certReqMsg we wrap.
+
+ a byte array containing the binary encoding of the certReqMsg.
+
+
+
+ Create a builder that makes EncryptedValue structures.
+
+ wrapper a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+
+
+
+
+ Create a builder that makes EncryptedValue structures with fixed length blocks padded using the passed in padder.
+
+ a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+ padder a padder to ensure that the EncryptedValue created will always be a constant length.
+
+
+
+
+ Build an EncryptedValue structure containing the passed in pass phrase.
+
+ a revocation pass phrase.
+ an EncryptedValue containing the encrypted pass phrase.
+
+
+
+
+ Build an EncryptedValue structure containing the certificate contained in
+ the passed in holder.
+
+ a holder containing a certificate.
+ an EncryptedValue containing the encrypted certificate.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Build an EncryptedValue structure containing the private key contained in
+ the passed info structure.
+
+ a PKCS#8 private key info structure.
+ an EncryptedValue containing an EncryptedPrivateKeyInfo structure.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Generic interface for a CertificateRequestMessage control value.
+
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the value contained in this control object.
+
+
+
+
+ An encrypted value padder is used to make sure that prior to a value been
+ encrypted the data is padded to a standard length.
+
+
+
+
+ Return a byte array of padded data.
+
+ the data to be padded.
+ a padded byte array containing data.
+
+
+
+
+ Return a byte array of with padding removed.
+
+ the data to be padded.
+ an array containing the original unpadded data.
+
+
+
+
+ Basic constructor - build from an PKIArchiveOptions structure.
+
+ the ASN.1 structure that will underlie this control.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_pkiArchiveOptions
+
+
+
+ Return the underlying ASN.1 object.
+
+ a PKIArchiveOptions structure.
+
+
+
+ Return the archive control type, one of: encryptedPrivKey,keyGenParameters,or archiveRemGenPrivKey.
+
+ the archive control type.
+
+
+
+ Return whether this control contains enveloped data.
+
+ true if the control contains enveloped data, false otherwise.
+
+
+
+ Return the enveloped data structure contained in this control.
+
+ a CMSEnvelopedData object.
+
+
+
+ Basic constructor - specify the contents of the PKIArchiveControl structure.
+
+ the private key to be archived.
+ the general name to be associated with the private key.
+
+
+
+ Add a recipient generator to this control.
+ recipient generator created for a specific recipient.
+ this builder object.
+
+
+ Build the PKIArchiveControl using the passed in encryptor to encrypt its contents.
+ a suitable content encryptor.
+ a PKIArchiveControl object.
+
+
+
+ Default, IterationCount = 1000, OIW=IdSha1, Mac=HmacSHA1
+
+
+
+
+ Defaults with IPKMacPrimitivesProvider
+
+
+
+
+
+ Create.
+
+ The Mac provider
+ Digest Algorithm Id
+ Mac Algorithm Id
+
+
+
+ Create a PKMAC builder enforcing a ceiling on the maximum iteration count.
+
+ supporting calculator
+ max allowable value for iteration count.
+
+
+ Set the salt length in octets.
+
+ @param saltLength length in octets of the salt to be generated.
+ @return the generator
+
+
+
+ Set the iteration count.
+
+ the iteration count.
+ this
+ if iteration count is less than 100
+
+
+
+ Set PbmParameters
+
+ The parameters.
+ this
+
+
+
+ The Secure random
+
+ The random.
+ this
+
+
+
+ Build an IMacFactory.
+
+ The password.
+ IMacFactory
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_regToken
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+ a UTF8String.
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+ Converts the given password to a BigInteger mod q.
+
+
+ Converts the given password (UTF8 encoded) to a BigInteger mod q.
+
+
+ Converts the given password (UTF8 encoded) to a BigInteger mod q.
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The AEAD ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ This exception is thrown if a buffer that is meant to have output copied into it turns out to be too
+ short, or if we've been given insufficient input.
+
+ In general this exception will get thrown rather than an .
+
+
+
+ ASCON v1.2 Hash, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 Hash with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ ASCON v1.2 XOF, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 XOF with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ Implementation of the cryptographic hash function Blake2b.
+
+ Blake2b offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ Blake2b offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2b is optimized for 64-bit platforms and produces digests of any size
+ between 1 and 64 bytes.
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be a multiple of 8 and less than 256.
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ Implementation of the eXtendable Output Function (XOF) BLAKE2xs.
+
+ BLAKE2xs offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2xs offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2xs is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 2^16-2 bytes. The length can also be unknown and then the maximum
+ length will be 2^32 blocks of 32 bytes.
+
+
+ Magic number to indicate an unknown length of digest
+
+
+ Expected digest length for the xof. It can be unknown.
+
+
+ Root hash that will take the updates
+
+
+ Digest of the root hash
+
+
+ Digest of each round of the XOF
+
+
+ Current position for a round
+
+
+ Overall position of the digest. It is useful when the length is known
+ in advance to get last block length.
+
+
+ Keep track of the round number to detect the end of the digest after
+ 2^32 blocks of 32 bytes.
+
+
+ Current node offset incremented by 1 every round.
+
+
+ BLAKE2xs for hashing with unknown digest length
+
+
+ BLAKE2xs for hashing
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+
+
+ BLAKE2xs with key
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+
+
+ BLAKE2xs with key, salt and personalization
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Return the maximum size in bytes the digest can produce when the length
+ is unknown
+
+ @return byte length of the largest digest with unknown length
+
+
+ Update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt, personal string remain.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+
+
+ Start outputting the results of the final calculation for this digest. Unlike doFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+ @return the number of bytes written
+
+
+ Already outputting error.
+
+
+ Number of Words.
+
+
+ Number of Rounds.
+
+
+ Buffer length.
+
+
+ Chunk length.
+
+
+ ChunkStart Flag.
+
+
+ ChunkEnd Flag.
+
+
+ Parent Flag.
+
+
+ Root Flag.
+
+
+ KeyedHash Flag.
+
+
+ DeriveContext Flag.
+
+
+ DeriveKey Flag.
+
+
+ Chaining0 State Locations.
+
+
+ Chaining1 State Location.
+
+
+ Chaining2 State Location.
+
+
+ Chaining3 State Location.
+
+
+ Chaining4 State Location.
+
+
+ Chaining5 State Location.
+
+
+ Chaining6 State Location.
+
+
+ Chaining7 State Location.
+
+
+ IV0 State Locations.
+
+
+ IV1 State Location.
+
+
+ IV2 State Location.
+
+
+ IV3 State Location.
+
+
+ Count0 State Location.
+
+
+ Count1 State Location.
+
+
+ DataLen State Location.
+
+
+ Flags State Location.
+
+
+ Message word permutations.
+
+
+ Blake3 Initialization Vector.
+
+
+ The byte input/output buffer.
+
+
+ The key.
+
+
+ The chaining value.
+
+
+ The state.
+
+
+ The message Buffer.
+
+
+ The indices.
+
+
+ The chainingStack.
+
+
+ The default digestLength.
+
+
+ Are we outputting?
+
+
+ How many more bytes can we output?
+
+
+ The current mode.
+
+
+ The output mode.
+
+
+ The output dataLen.
+
+
+ The block counter.
+
+
+ The # of bytes in the current block.
+
+
+ The position of the next byte in the buffer.
+
+
+ the default digest size (in bits)
+
+
+ Constructor.
+
+ @param pSource the source digest.
+
+
+ Initialise.
+
+ @param pParams the parameters.
+
+
+ Adjust the stack.
+
+
+ Compress final block.
+
+ @param pDataLen the data length
+
+
+ Process the stack.
+
+
+ Perform compression.
+
+
+ Perform a round.
+
+
+ Adjust Chaining after compression.
+
+
+ Mix function G.
+
+ @param msgIdx the message index
+ @param posA position A in V
+ @param posB position B in V
+ @param posC position C in V
+ @param posD poistion D in V
+
+
+ initialise the indices.
+
+
+ PermuteIndices.
+
+
+ Initialise null key.
+
+
+ Initialise key.
+
+ @param pKey the keyBytes
+
+
+ Initialise key from context.
+
+
+ Initialise chunk block.
+
+ @param pDataLen the dataLength
+ @param pFinal is this the final chunk?
+
+
+ Initialise parent block.
+
+
+ Initialise output block.
+
+
+ IncrementBlockCount.
+
+
+ ResetBlockCount.
+
+
+ Set root indication.
+
+
+
+ Customizable SHAKE function.
+
+
+
+
+ Base constructor
+
+ bit length of the underlying SHAKE function, 128 or 256.
+ the function name string, note this is reserved for use by NIST. Avoid using it if not required.
+ the customization string - available for local use.
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+
+ ParallelHash - a hash designed to support the efficient hashing of very long strings, by taking advantage,
+ of the parallelism available in modern processors with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+ @param B the blocksize (in bytes) for hashing.
+
+
+ Photon-Beetle, https://www.isical.ac.in/~lightweight/beetle/
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/readonlyist-round/updated-spec-doc/photon-beetle-spec-readonly.pdf
+
+ Photon-Beetle with reference to C Reference Impl from: https://github.com/PHOTON-Beetle/Software
+
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ Sparkle v1.2, based on the current round 3 submission, https://sparkle-lwc.github.io/ .
+
+ Reference C implementation: https://github.com/cryptolu/sparkle.
+ Specification:
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/sparkle-spec-final.pdf .
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ TupleHash - a hash designed to simply hash a tuple of input strings, any or all of which may be empty strings,
+ in an unambiguous way with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto and Rijmen.
+
+
+ Copy constructor. This will copy the state of the provided message digest.
+
+
+ Reset the chaining variables
+
+
+ Elliptic curve registry for various customized curve implementations.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AesWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AESWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ RFC 5794.
+
+ ARIA is a 128-bit block cipher with 128-, 192-, and 256-bit keys.
+
+
+
+ An implementation of the ARIA Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AriaWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AriaWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ ASCON v1.2 AEAD, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 AEAD with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ Constants
+
+
+ Variables to hold the state of the engine during encryption and
+ decryption
+
+
+ Initialize a Grain-128AEAD cipher.
+
+ @param forEncryption Whether or not we are for encryption.
+ @param param The parameters required to set up the cipher.
+ @throws ArgumentException If the params argument is inappropriate.
+
+
+ 320 clocks initialization phase.
+
+
+ Get output from non-linear function g(x).
+
+ @return Output from NFSR.
+
+
+ Get output from linear function f(x).
+
+ @return Output from LFSR.
+
+
+ Get output from output function h(x).
+
+ @return y_t.
+
+
+ Shift array 1 bit and add val to index.Length - 1.
+
+ @param array The array to shift.
+ @param val The value to shift in.
+ @return The shifted array with val added to index.Length - 1.
+
+
+ Set keys, reset cipher.
+
+ @param keyBytes The key.
+ @param ivBytes The IV.
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (barring 1 typo at the
+ end of the MulInv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note: This algorithm was patented in the USA, Japan and Europe. These patents expired in 2011/2012.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.
+
+ The implementation here is based on the document http://eprint.iacr.org/2008/329.pdf
+ by Whitfield Diffie and George Ledin, which is a translation of Prof. LU Shu-wang's original standard.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null
to use the current key.
+ the 2 word (128 bit) tweak, or null
to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Base class for format-preserving encryption.
+
+
+
+ Process length bytes from inBuf, writing the output to outBuf.
+
+ number of bytes output.
+ input data.
+ offset in input data to start at.
+ number of bytes to process.
+ destination buffer.
+ offset to start writing at in destination buffer.
+
+
+
+ Initialize the FPE engine for encryption/decryption.
+
+ number of bytes output.
+ true if initialising for encryption, false otherwise.
+ the key and other parameters to use to set the engine up.
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Converts a character password to bytes incorporating the required trailing zero byte.
+
+ @param password the password to be encoded.
+ @return a byte representation of the password in UTF8 + trailing zero.
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost
. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD1 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, 2y,2b or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$' using version
+ '2y'.
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, may be 2b, 2y or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+
+ Generator for PBE derived keys and IVs as usd by OpenSSL. Originally this scheme was a simple extension of
+ PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1. The default digest was changed to SHA-256 with
+ OpenSSL 1.1.0. This implementation still defaults to MD5, but the digest can now be set.
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest the original MD5.
+
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest as specified.
+
+ the digest to use as the PRF.
+
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15]
with the required bits in r
cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r
(second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15]
with the required bits in r
cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r
portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8)
.
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ int.MaxValue / (128 * r * 8)
.
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for mapping from an alphabet to a set of indexes
+ suitable for use with FPE.
+
+
+
+ Return the number of characters in the alphabet.
+
+ the radix for the alphabet.
+
+
+
+ Return the passed in char[] as a byte array of indexes (indexes
+ can be more than 1 byte)
+
+ an index array.
+ characters to be mapped.
+
+
+
+ Return a char[] for this alphabet based on the indexes passed.
+
+ an array of char corresponding to the index values.
+ input array of indexes.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+ Process a block.
+ The input block as a span.
+ The output span.
+ If input block is wrong size, or output span too small.
+ The number of bytes processed and produced.
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+
+ Store the final result of the operation by copying it into the destination span.
+
+ The number of bytes copied into destination.
+ The span to copy the result into.
+
+
+ Return an upper limit for the size of the result.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+
+ Base interface for a ciphers that do not require data to be block aligned.
+
+ Note: In cases where the underlying algorithm is block based, these ciphers may add or remove padding as needed.
+
+
+
+
+
+ Return the size of the output buffer required for a Write() plus a
+ close() with the write() being passed inputLen bytes.
+
+ The returned size may be dependent on the initialisation of this cipher
+ and may not be accurate once subsequent input data is processed as the cipher may
+ add, add or remove padding, as it sees fit.
+
+
+ The space required to accommodate a call to processBytes and doFinal with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Return the size of the output buffer required for a write() with the write() being
+ passed inputLen bytes and just updating the cipher output.
+
+ The space required to accommodate a call to processBytes with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Gets the stream for reading/writing data processed/to be processed.
+
+ The stream associated with this cipher.
+
+
+
+ Base interface for cipher builders.
+
+
+
+
+ Return the algorithm and parameter details associated with any cipher built.
+
+
+
+
+ Return the maximum output size that a given input will produce.
+
+ the length of the expected input.
+ The maximum possible output size that can produced for the expected input length.
+
+
+
+ Build a cipher that operates on the passed in stream.
+
+ The stream to write/read any encrypted/decrypted data.
+ A cipher based around the given stream.
+
+
+
+ A cipher builder that can also return the key it was initialized with.
+
+
+
+
+ Return the key we were initialized with.
+
+
+
+ all parameter classes implement this.
+
+
+
+ Interface describing a provider of cipher builders for creating decrypting ciphers.
+
+
+
+
+ Return a cipher builder for creating decrypting ciphers.
+
+ The algorithm details/parameters to use to create the final cipher.
+ A new cipher builder.
+
+
+ Base interface for general purpose byte derivation functions.
+
+
+ The message digest used as the basis for the function.
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ Base interface for a message digest.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the digest produced by this message digest.
+ the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size, in bytes, of the internal buffer used by this digest.
+ the size, in bytes, of the internal buffer used by this digest.
+
+
+ Update the message digest with a single byte.
+ the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Update the message digest with a span of bytes.
+ the span containing the data.
+
+
+ Close the digest, producing the final digest value.
+ This call leaves the digest reset.
+ the byte array the digest is to be copied into.
+ the offset into the byte array the digest is to start at.
+ the number of bytes written
+
+
+ Close the digest, producing the final digest value.
+ This call leaves the digest reset.
+ the span the digest is to be copied into.
+ the number of bytes written
+
+
+ Reset the digest back to its initial state.
+
+
+
+ Base interface for operator factories that create stream-based digest calculators.
+
+
+
+ The algorithm details object for calculators made by this factory.
+
+
+ Return the size of the digest associated with this factory.
+ The length of the digest produced by this calculators from this factory in bytes.
+
+
+
+ Create a stream calculator for the digest associated with this factory. The stream
+ calculator is used for the actual operation of entering the data to be digested
+ and producing the digest block.
+
+ A calculator producing an IBlockResult with the final digest in it.
+
+
+ Interface for classes implementing the Digital Signature Algorithm
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signature generation or signature verification.
+ true if we are generating a signature, false otherwise.
+ key parameters for signature generation.
+
+
+ Sign the passed in message (usually the output of a hash function).
+ the message to be signed.
+ two big integers representing the r and s values respectively.
+
+
+ The order of the group that the r, s values in signatures belong to.
+
+
+ Verify the message message against the signature values r and s.
+ the message that was supposed to have been signed.
+ the r signature value.
+ the s signature value.
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+ the encapsulated secret.
+
+
+
+ The length in bytes of the encapsulation.
+
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+
+ An SecretWithEncapsulation derived from the recipient public key.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+
+ Base interface for a key unwrapper.
+
+
+
+
+ The parameter set used to configure this key unwrapper.
+
+
+
+
+ Unwrap the passed in data.
+
+ The array containing the data to be unwrapped.
+ The offset into cipherText at which the unwrapped data starts.
+ The length of the data to be unwrapped.
+ an IBlockResult containing the unwrapped key data.
+
+
+
+ Base interface for a key wrapper.
+
+
+
+
+ The parameter set used to configure this key wrapper.
+
+
+
+
+ Wrap the passed in key data.
+
+ The key data to be wrapped.
+ an IBlockResult containing the wrapped key data.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+ The key or other data required by the MAC.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the MAC produced by this implementation.
+ the size, in bytes, of the MAC produced by this implementation.
+
+
+ Update the MAC with a single byte.
+ the input byte to be entered.
+
+
+ Update the MAC with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Update the MAC with a span of bytes.
+ the span containing the data.
+
+
+ Perform final calculations, producing the result MAC.
+ This call leaves the MAC reset.
+ the byte array the MAC is to be copied into.
+ the offset into the byte array the MAC is to start at.
+ the number of bytes written
+
+
+ Perform final calculations, producing the result MAC.
+ This call leaves the MAC reset.
+ the span the MAC is to be copied into.
+ the number of bytes written
+
+
+ Reset the MAC back to its initial state.
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ This exception is thrown whenever we find something we don't expect in a message.
+
+
+
+ Return the secret associated with the encapsulation.
+
+ the secret the encapsulation is for.
+
+
+
+ Return the data that carries the secret in its encapsulated form.
+
+ the encapsulation of the secret.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signing or verification.
+ true if for signing, false otherwise.
+ necessary parameters.
+
+
+ Update the signer with a single byte.
+ the input byte to be entered.
+
+
+ Update the signer with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Update the signer with a span of bytes.
+ the span containing the data.
+
+
+ Generate a signature for the message we've been loaded with using the key we were initialised with.
+
+ A byte array containing the signature for the message.
+
+
+ Return true if the internal state represents the signature described in the passed in array.
+
+ an array containing the candidate signature to verify.
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the signer back to its initial state.
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from , putting the result into .
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the input buffer is too small.
+ If the output buffer is too small.
+
+
+
+ Process a block of bytes from , putting the result into .
+
+ The input span.
+ The output span.
+ If the output span is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra methods required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this XOF to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Output the results of the final calculation for this XOF to fill the output span.
+
+ span to fill with the output bytes.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this XOF. Unlike DoFinal, this method
+ will continue producing output until the XOF is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this XOF. Unlike OutputFinal, this method
+ will continue producing output until the XOF is explicitly reset, or signals otherwise.
+
+ span to fill with the output bytes.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+ This exception is thrown whenever a cipher requires a change of key, IV or similar after x amount of
+ bytes enciphered.
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ GCM-SIV Mode.
+ It should be noted that the specified limit of 236 bytes is not supported. This is because all bytes are
+ cached in a ByteArrayOutputStream object (which has a limit of a little less than 231 bytes),
+ and are output on the DoFinal() call (which can only process a maximum of 231 bytes).
+ The practical limit of 231 - 24 bytes is policed, and attempts to breach the limit will be rejected
+ In order to properly support the higher limit, an extended form of ByteArrayOutputStream would be needed
+ which would use multiple arrays to store the data. In addition, a new doOutput method would be required (similar
+ to that in XOF digests), which would allow the data to be output over multiple calls. Alternatively an extended
+ form of ByteArrayInputStream could be used to deliver the data.
+
+
+ The buffer length.
+
+
+ The halfBuffer length.
+
+
+ The nonce length.
+
+
+ The maximum data length (AEAD/PlainText). Due to implementation constraints this is restricted to the maximum
+ array length (https://programming.guide/java/array-maximum-length.html) minus the BUFLEN to allow for the MAC
+
+
+ The top bit mask.
+
+
+ The addition constant.
+
+
+ The initialisation flag.
+
+
+ The aeadComplete flag.
+
+
+ The cipher.
+
+
+ The multiplier.
+
+
+ The gHash buffer.
+
+
+ The reverse buffer.
+
+
+ The aeadHasher.
+
+
+ The dataHasher.
+
+
+ The plainDataStream.
+
+
+ The encryptedDataStream (decryption only).
+
+
+ Are we encrypting?
+
+
+ The initialAEAD.
+
+
+ The nonce.
+
+
+ The flags.
+
+
+ Constructor.
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+ @param pMultiplier the multiplier
+
+
+ check AEAD status.
+ @param pLen the aeadLength
+
+
+ check status.
+ @param pLen the dataLength
+
+
+ Reset Streams.
+
+
+ Obtain buffer length (allowing for null).
+ @param pBuffer the buffere
+ @return the length
+
+
+ calculate tag.
+ @return the calculated tag
+
+
+ complete polyVAL.
+ @return the calculated value
+
+
+ process lengths.
+
+
+ perform the next GHASH step.
+ @param pNext the next value
+
+
+ xor a full block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+
+
+ xor a partial block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+ @param pOffset the offset in the right operand
+ @param pLength the length of data in the right operand
+
+
+ increment the counter.
+ @param pCounter the counter to increment
+
+
+ multiply by X.
+ @param pValue the value to adjust
+
+
+ Derive Keys.
+ @param pKey the keyGeneration key
+
+
+ Hash Control.
+
+
+ Cache.
+
+
+ Single byte cache.
+
+
+ Count of active bytes in cache.
+
+
+ Count of hashed bytes.
+
+
+ Obtain the count of bytes hashed.
+ @return the count
+
+
+ Reset the hasher.
+
+
+ update hash.
+ @param pByte the byte
+
+
+ update hash.
+ @param pBuffer the buffer
+ @param pOffset the offset within the buffer
+ @param pLen the length of data
+
+
+ complete hash.
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ An IAeadCipher based on an IBlockCipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ The block cipher underlying this algorithm.
+
+
+
+ A cipher mode that includes authenticated encryption with a streaming mode and optional
+ associated data.
+
+
+ Implementations of this interface may operate in a packet mode (where all input data is
+ buffered and processed during the call to DoFinal, or in a streaming mode (where output
+ data is incrementally produced with each call to ProcessByte or ProcessBytes. This is
+ important to consider during decryption: in a streaming mode, unauthenticated plaintext
+ data may be output prior to the call to DoFinal that results in an authentication failure.
+ The higher level protocol utilising this cipher must ensure the plaintext data is handled
+ appropriately until the end of data is reached and the entire ciphertext is authenticated.
+
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Add a span of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ the span containing the data.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+ Return the
underlying this cipher mode.
+
+
+ Indicates whether this cipher mode can handle partial blocks.
+
+
+
+ Reset the cipher mode to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm.
+
+ For those still concerned about the original patents around this, please see:
+ https://mailarchive.ietf.org/arch/msg/cfrg/qLTveWOdTJcLn4HP3ev-vrj05Vg/
+ Text reproduced below:
+
+ Phillip Rogaway<rogaway@cs.ucdavis.edu> Sat, 27 February 2021 02:46 UTC
+
+ I can confirm that I have abandoned all OCB patents and placed into the public domain all OCB-related IP of
+ mine. While I have been telling people this for quite some time, I don't think I ever made a proper announcement
+ to the CFRG or on the OCB webpage. Consider that done.
+
+
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface.
+
+
+ Initialise the padder.
+ A source of randomness, if any required.
+
+
+ The name of the algorithm this padder implements.
+
+
+ Add padding to the passed in block.
+ the block to add padding to.
+ the offset into the block the padding is to start at.
+ the number of bytes of padding added.
+
+
+ Add padding to the passed in block.
+ the block to add padding to.
+ the offset into the block the padding is to start at.
+ the number of bytes of padding added.
+
+
+ Determine the length of padding present in the passed in block.
+ the block to check padding for.
+ the number of bytes of padding present.
+
+
+ Determine the length of padding present in the passed in block.
+ the block to check padding for.
+ the number of bytes of padding present.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+
+ A padder that adds the padding according to the scheme referenced in ISO 7814-4 - scheme 2 from ISO 9797-1.
+ The first byte is 0x80, rest is 0x00
+
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds PKCS7/PKCS5 padding to a block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+ This padding pads the block out compliment of the last bit of the plain text.
+
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is passed in random padding is assumed,
+ otherwise padding with zeros is used.
+
+
+
+ A padder that adds zero byte padding to a block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Blake3 Parameters.
+
+
+ Create a key parameter.
+ the context
+ the parameter
+
+
+ Create a key parameter.
+ the key
+ the parameter
+
+
+ Obtain the key.
+ the key
+
+
+ Clear the key bytes.
+
+
+ Obtain the salt.
+ the salt
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+
+ Base constructor - suffix fixed input data only.
+
+ the KDF seed
+ fixed input data to follow counter.
+ length of the counter in bits
+
+
+
+ Base constructor - prefix and suffix fixed input data.
+
+ the KDF seed
+ fixed input data to precede counter
+ fixed input data to follow counter.
+ length of the counter in bits.
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null
if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null
if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher
, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null
to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null
to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Supports use of additional input.
+
+ RFC 6979 3.6. Additional data may be added to the input of HMAC [..]. A use case may be a protocol that
+ requires a non-deterministic signature algorithm on a system that does not have access to a high-quality
+ random source. It suffices that the additional data[..] is non-repeating(e.g., a signature counter or a
+ monotonic clock) to ensure "random-looking" signatures are indistinguishable, in a cryptographic way, from
+ plain (EC)DSA signatures.
+
+ By default there is no additional input. Override this method to supply additional input, bearing in mind
+ that this calculator may be used for many signatures.
+
+ The to which the additional input should be added.
+
+
+
+ An interface for different encoding formats for DSA signatures.
+
+
+
+ Decode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ An encoding of the (r, s) pair of a DSA signature.
+ The (r, s) of a DSA signature, stored in an array of exactly two elements, r followed by s.
+
+
+ Encode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ The r value of a DSA signature.
+ The s value of a DSA signature.
+ An encoding of the DSA signature given by the provided (r, s) pair.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+
+ A simple block result object which just carries a byte array.
+
+
+
+
+ Base constructor - a wrapper for the passed in byte array.
+
+ The byte array to be wrapped.
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+ Create an AlgorithmIdentifier for the passed in encryption algorithm.
+
+ @param encryptionOID OID for the encryption algorithm
+ @param keySize key size in bits (-1 if unknown)
+ @param random SecureRandom to use for parameter generation.
+ @return a full AlgorithmIdentifier including parameters
+ @throws IllegalArgumentException if encryptionOID cannot be matched
+
+
+ A basic alphabet mapper that just creates a mapper based on the
+ passed in array of characters.
+
+
+ Base constructor.
+
+ @param alphabet a string of characters making up the alphabet.
+
+
+ Base constructor.
+
+ @param alphabet an array of characters making up the alphabet.
+
+
+ Create a key generator for the passed in Object Identifier.
+
+ @param algorithm the Object Identifier indicating the algorithn the generator is for.
+ @param random a source of random to initialise the generator with.
+ @return an initialised CipherKeyGenerator.
+ @throws IllegalArgumentException if the algorithm cannot be identified.
+
+
+ Magic value for proprietary OpenSSH private key.
+ C string so null terminated.
+
+
+ Encode a cipher parameters into an OpenSSH private key.
+ This does not add headers like ----BEGIN RSA PRIVATE KEY----
+
+ @param parameters the cipher parameters.
+ @return a byte array
+
+
+ Parse a private key.
+
+ This method accepts the body of the OpenSSH private key.
+ The easiest way to extract the body is to use PemReader, for example:
+
+ byte[] blob = new PemReader([reader]).readPemObject().getContent();
+ CipherParameters params = parsePrivateKeyBlob(blob);
+
+ @param blob The key.
+ @return A cipher parameters instance.
+
+
+ allIntegers returns true if the sequence holds only DerInteger types.
+
+
+
+ Parse a public key.
+
+ This method accepts the bytes that are Base64 encoded in an OpenSSH public key file.
+
+ @param encoded The key.
+ @return An AsymmetricKeyParameter instance.
+
+
+ Encode a public key from an AsymmetricKeyParameter instance.
+
+ @param cipherParameters The key to encode.
+ @return the key OpenSSH encoded.
+ @throws IOException
+
+
+ Parse a public key from an SSHBuffer instance.
+
+ @param buffer containing the SSH public key.
+ @return A CipherParameters instance.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Use KeyTransRecipientInfoGenerator
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal
is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale
of the SimpleBigDecimal
.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimal
s
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimal
s returns a
+ SimpleBigDecimal
with double scale.
+
+
+ Returns a SimpleBigDecimal
representing the same numerical
+ value as value
.
+ @param value The value of the SimpleBigDecimal
to be
+ created.
+ @param scale The scale of the SimpleBigDecimal
to be
+ created.
+ @return The such created SimpleBigDecimal
.
+
+
+ Constructor for SimpleBigDecimal
. The value of the
+ constructed SimpleBigDecimal
Equals bigInt /
+ 2scale
.
+ @param bigInt The bigInt
value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal
.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu
's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ The αu
's for a=0
as an array
+ of ZTauElement
s.
+
+
+ The αu
's for a=0
as an array
+ of TNAFs.
+
+
+ The αu
's for a=1
as an array
+ of ZTauElement
s.
+
+
+ The αu
's for a=1
as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ
of
+ Z[τ]
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return The norm of λ
.
+
+
+ Computes the norm of an element λ
of
+ R[τ]
, where λ = u + vτ
+ and u
and u
are real numbers (elements of
+ R
).
+ @param mu The parameter μ
of the elliptic curve.
+ @param u The real part of the element λ
of
+ R[τ]
.
+ @param v The τ
-adic part of the element
+ λ
of R[τ]
.
+ @return The norm of λ
.
+
+
+ Rounds an element λ
of R[τ]
+ to an element of Z[τ]
, such that their difference
+ has minimal norm. λ
is given as
+ λ = λ0 + λ1τ
.
+ @param lambda0 The component λ0
.
+ @param lambda1 The component λ1
.
+ @param mu The parameter μ
of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ]
.
+ @throws ArgumentException if lambda0
and
+ lambda1
do not have same scale.
+
+
+ Approximate division by n
. For an integer
+ k
, the value λ = s k / n
is
+ computed to c
bits of accuracy.
+ @param k The parameter k
.
+ @param s The curve parameter s0
or
+ s1
.
+ @param vm The Lucas Sequence element Vm
.
+ @param a The parameter a
of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm
.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal
.
+ @return The value λ = s k / n
computed to
+ c
bits of accuracy.
+
+
+ Computes the τ
-adic NAF (non-adjacent form) of an
+ element λ
of Z[τ]
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return The τ
-adic NAF of λ
.
+
+
+ Applies the operation τ()
to an
+ AbstractF2mPoint
.
+ @param p The AbstractF2mPoint to which τ()
is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ
of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ
.
+ The curve must be a Koblitz curve, i.e. a
Equals
+ 0
or 1
and b
Equals
+ 1
.
+ @return μ
of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1
and
+ Uk
or Vk-1
and
+ Vk
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1
and
+ Vk
, otherwise Uk-1
and
+ Uk
.
+ @return An array with 2 elements, containing Uk-1
+ and Uk
or Vk-1
+ and Vk
.
+
+
+ Computes the auxiliary value tw
. If the width is
+ 4, then for mu = 1
, tw = 6
and for
+ mu = -1
, tw = 10
+ @param mu The parameter μ
of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0
and
+ s1
used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0
and s1
.
+ @throws ArgumentException if curve
is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1)
.
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a
of the elliptic curve.
+ @param s The auxiliary values s0
and
+ s1
.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger
using the reduced τ
-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger
by which to Multiply p
.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the τ
-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the τ
-adic NAF (TNAF) method, given the TNAF
+ of λ
.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ
..
+ @return λ * p
+
+
+ Computes the [τ]
-adic window NAF of an element
+ λ
of Z[τ]
.
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
of which to compute the
+ [τ]
-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw
.
+ @param alpha The αu
's for the window width.
+ @return The [τ]
-adic window NAF of
+ λ
.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint
for which to do the precomputation.
+ @param a The parameter a
of the elliptic curve.
+ @return The precomputation array for p
.
+
+
+ Class representing an element of Z[τ]
. Let
+ λ
be an element of Z[τ]
. Then
+ λ
is given as λ = u + vτ
. The
+ components u
and v
may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ
.
+
+
+ The "τ
-adic" part of λ
.
+
+
+ Constructor for an element λ
of
+ Z[τ]
.
+ @param u The "real" part of λ
.
+ @param v The "τ
-adic" part of
+ λ
.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly
+ faster) implementations, and for very small scalars. CAUTION: This implementation is NOT
+ constant-time in any way. It is only intended to be used for diagnostics.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP
.
+
+
+ Base class for an elliptic curve.
+
+
+ Compute a PreCompInfo
for a point on this curve, under a given name. Used by
+ ECMultiplier
s to save the precomputation for this ECPoint
for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint
to store precomputations for.
+ @param name
+ A String
used to index precomputations of different types.
+ @param callback
+ Called to calculate the PreCompInfo
.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Create a cache-safe lookup table for the specified sequence of points. All the points MUST
+ belong to this ECCurve
instance, and MUST already be normalized.
+
+
+ Sets the default ECMultiplier
, unless already set.
+
+ We avoid locking for performance reasons, so there is no uniqueness guarantee.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp
(X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ Solves a quadratic equation z2 + z = beta
(X9.62
+ D.1.6) The other solution is z + 1
.
+
+ @param beta
+ The value to solve the quadratic equation for.
+ @return the solution for z2 + z = beta
or
+ null
if no solution exists.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b
.
+
+
+ The exponent m
of F2m
.
+
+
+ TPB: The integer k
where xm +
+ xk + 1
represents the reduction polynomial
+ f(z)
.
+ PPB: The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ TPB: Always set to 0
+ PPB: The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ TPB: Always set to 0
+ PPB: The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k The integer k
where xm +
+ xk + 1
represents the reduction
+ polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k The integer k
where xm +
+ xk + 1
represents the reduction
+ polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n
.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n
.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m
in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m
of F2m
.
+
+
+ The LongArray
holding the bits.
+
+
+ Checks, if the ECFieldElements a
and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a
and b
+ are not elements of the same field
+ F2m
(having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m
, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m
of the reduction polynomial
+ f(z)
.
+
+
+ @return Tpb: The integer k
where xm +
+ xk + 1
represents the reduction polynomial
+ f(z)
.
+ Ppb: The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ base class for points on elliptic curves.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint
by the given number.
+ @param k The multiplicator.
+ @return k * this
.
+
+
+ Elliptic curve points over Fp
+
+
+ Elliptic curve points over F2m
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoint
s.
+
+
+ Multiplies the ECPoint p
by k
, i.e.
+ p
is added k
times to itself.
+ @param p The ECPoint
to be multiplied.
+ @param k The factor by which p
is multiplied.
+ @return p
multiplied by k
.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Lookup table for the precomputed ECPoint
s used for a fixed point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier
.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this
by an integer k
using the
+ Window NAF method.
+ @param k The integer by which this
is multiplied.
+ @return A new ECPoint
which equals this
+ multiplied by k
.
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoint
s used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoint
s used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint
representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w
of the Window NAF. The width is
+ defined as the minimal number w
, such that for any
+ w
consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+
, where the ki
denote the elements of the
+ returned byte[]
.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ
-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k
using the reduced τ
-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k
.
+ @return p
multiplied by k
.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
using
+ the τ
-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ
of
+ Z[τ]
of which to compute the
+ [τ]
-adic NAF.
+ @return p
multiplied by λ
.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the window τ
-adic NAF (TNAF) method, given the
+ WTNAF of λ
.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ
..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ
-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoint
s used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}
.
+
+
+
+ A low-level implementation of the Ed25519, Ed25519ctx, and Ed25519ph instantiations of the Edwards-Curve Digital
+ Signature Algorithm specified in RFC 8032.
+
+
+ The implementation strategy is mostly drawn from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography", notably the "signed multi-comb" algorithm (for
+ scalar multiplication by a fixed point), the "half Niels coordinates" (for precomputed points), and the
+ "extensible coordinates" (for accumulators). Standard
+ extended coordinates are used during
+ precomputations, needing only a single extra point addition formula.
+
+
+
+
+ A low-level implementation of the Ed448 and Ed448ph instantiations of the Edwards-Curve Digital Signature
+ Algorithm specified in RFC 8032.
+
+
+ The implementation uses the "signed mult-comb" algorithm (for scalar multiplication by a fixed point) from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography". Standard
+ projective coordinates are used
+ for most point arithmetic.
+
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+
+ Enhanced Miller-Rabin Probabilistic Primality Test
+
+
+ Used to return the output from the
+ Shawe-Taylor Random_Prime Routine
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine.
+ Construct a provable prime number using a hash function.
+ The instance to use (as "Hash()"). Cannot be null.
+ The length (in bits) of the prime to be generated. Must be at least 2.
+ The seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ An instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test.
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an alternative to
+ that provides more information about a
+ composite candidate, which may be useful when generating or validating RSA moduli.
+
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+ An instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+ The instance to test for division by small factors.
+ true if the candidate is found to have any small factors, false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test.
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+
+ false if any witness to compositeness is found amongst the chosen bases (so
+ is definitely NOT prime), or else true (indicating primality with some
+ probability dependent on the number of iterations that were performed).
+
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+ The instance to test for primality.
+ The base value to use for this iteration.
+ false if is a witness to compositeness (so
+ is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ Wrapper for the RevokedInfo object
+
+
+ Return the revocation reason, if there is one.
+ This field is optional; test for it with first.
+ The revocation reason, if available.
+ If no revocation reason is available.
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WARNING: If is null, no integrity check is performed.
+
+
+
+
+
+
+ Load without any integrity check.
+
+
+
+
+
+
+
+
+
+ JksTrustedCertEntry is a internal container for the certificate entry.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ Returns X509Extensions if the Extensions Request attribute can be found and returns the extensions block.
+
+ X509Extensions block or null if one cannot be found.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ A holding class for a PKCS#8 encrypted private key info object that allows for its decryption.
+
+
+
+
+ Base constructor from a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A PKCS#8 EncryptedPrivateKeyInfo object.
+
+
+
+ Base constructor from a BER encoding of a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A BER encoding of a PKCS#8 EncryptedPrivateKeyInfo objects.
+
+
+
+ Returns the underlying ASN.1 structure inside this object.
+
+ Return the EncryptedPrivateKeyInfo structure in this object.
+
+
+
+ Returns a copy of the encrypted data in this structure.
+
+ Return a copy of the encrypted data in this object.
+
+
+
+ Return a binary ASN.1 encoding of the EncryptedPrivateKeyInfo structure in this object.
+
+ A byte array containing the encoded object.
+
+
+
+ Get a decryptor from the passed in provider and decrypt the encrypted private key info, returning the result.
+
+ A provider to query for decryptors for the object.
+ The decrypted private key info structure.
+
+
+
+ Create the encrypted private key info using the passed in encryptor.
+
+ The encryptor to use.
+ An encrypted private key info containing the original private key info.
+
+
+ Base exception for PKCS related issues.
+
+
+ Base exception for parsing related issues in the PKCS namespace.
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+
+ @param privateKey the key to be encoded into the info object.
+ @param attributes the set of attributes to be included.
+ @return the appropriate PrivateKeyInfo
+ @throws java.io.IOException on an error encoding the key
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set
of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker
supports or
+ null
if no extensions are supported.
+
+ Each element of the set is a String
representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker
might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set
of X.509 extension OIDs (in
+ String
format) supported by this
+ PkixAttrCertChecker
, or null
if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection
of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params
must be an instance of
+ ExtendedPkixParameters
.
+
+ The target constraints in the params
must be an
+ X509AttrCertStoreSelector
with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult
of the result of
+ validating the certPath
.
+ @throws InvalidAlgorithmParameterException if params
is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters
.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters
, PKIXParameters
,
+ and ExtendedPKIXParameters
instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters
instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet
is null
an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters
and
+ PKIXBuilderParameters
.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters
object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters
object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ * Initializes the internal state of this PKIXCertPathChecker
.
+ *
+ * The forward
flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker
must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check
method. If true
,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false
, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker
is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker
to perform its
+ checks when certificates are presented to the check
method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true
if forward checking is supported,
+ false
otherwise
+
+
+ * Returns an immutable Set
of X.509 certificate extensions
+ * that this PKIXCertPathChecker
supports (i.e. recognizes,
+ * is able to process), or null
if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String
representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set
of X.509 extension OIDs (in
+ * String
format) supported by this
+ * PKIXCertPathChecker
, or null
if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init
method.
+
+ @param cert
+ the Certificate
to be checked
+ @param unresolvedCritExts
+ a Collection
of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator
implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi
)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator
class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi
instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator
object.
+
+ However, implementations of CertPathValidatorSpi
may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi
instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException
provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException
may also include the index of
+ the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #Index Index} property to retrieve
+ this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException
with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null
if none)
+ the cause (or null
if none)
+ the index of the certificate in the certification path that *
+
+
+ eturns the index of the certificate in the certification path that caused the exception to be
+ thrown.
+
+ Note that the list of certificates in a is zero based. If no index has been set,
+ -1 is returned.
+
+ The index that has been set, or -1 if none has been set.
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor
object if found or
+ null
if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal
.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey
. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index
extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector
.
+
+ The issuerPrincipals
are a collection with a single
+ X500Principal
for X509Certificate
s. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal
.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals
does not
+ contain only X500Principal
s.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate
or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set
of X509CRL
s with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set
of X509CRL
s with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection
object containing the issuer
+ X509Certificate
s. Never null
.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null
.
+
+
+
+ The most restricting part from email1
and
+ email2
is added to the intersection intersect
.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ The common part of email1
and email2
is
+ added to the union union
. If email1
and
+ email2
have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ Checks if the IP ip
is included in the excluded ISet
+ excluded
.
+
+ @param excluded A Set
of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP ip
is included in the permitted ISet
+ permitted
.
+
+ @param permitted A Set
of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP address ip
is constrained by
+ constraint
.
+
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @param ip The IP address.
+ @return true
if constrained, false
+ otherwise.
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted
with ip
.
+
+ @param permitted A Set
of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set
of permitted IP ranges intersected with
+ ip
.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set
with the single IP address with its subnet
+ mask as a byte array or an empty Set
.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip
.
+
+ @param excluded A Set
of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set
of excluded IP ranges unified with
+ ip
as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set
with the union of both addresses.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1
with ip2
. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1
and
+ ip2
.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1
and ip2
.
+
+
+
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+
+
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name
is
+ excluded.
+
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector
. If null
, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector
returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector
specifying the constraints on the
+ target certificate or attribute certificate (or null
)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector
. If null
, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector
specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector
specifying the constraints on
+ the target certificate or attribute certificate (or
+ null
)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null
, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null
)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null
)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set
, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set
of initial policy OIDs in String
+ format, or an empty Set
(implying any policy is
+ acceptable). Never returns null
.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set
of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set
(or
+ null
).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null
)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List
of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker
specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker
should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator
or CertPathBuilder
. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator
or CertPathBuilder
for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator
or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null
)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker
to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker
is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker
to add to the list of
+ checks. If null
, the checker is ignored (not added to list).
+
+
+ Method to support Clone()
under J2ME.
+ super.Clone()
does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters
they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false
.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true
if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true
if additional stores are used.
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet
consists of TrustAnchor
s.
+
+ The returned ISet
is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers
must be a ISet
of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null
.
+ @throws ClassCastException if an element of stores
is not
+ a TrustAnchor
.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet
is immutable and contains
+ String
s with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet
must contain String
s with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes
is not a
+ String
.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet
is immutable and contains
+ String
s with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null
.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet
must contain String
s with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes
is not a
+ String
.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null
.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet
must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null
.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker
.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true
if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+
+
+
+
+
+
+
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert
.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert
.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert
.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert
.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set
with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert
.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert
.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert
.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert
.
+ @param workingPublicKey The public key of the issuer certificate sign
.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert
.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert
.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor
where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor
.
+
+ a formatted string describing the TrustAnchor
+
+
+ Generate key pairs
+ - Secret key : (h0, h1, sigma)
+ - Public key: h
+ * @param h0 h0
+ * @param h1 h1
+ * @param sigma sigma
+ * @param h h
+ * @param random Secure Random
+ *
+
+
+ KEM Encapsulation
+ - Input: h
+ - Output: (c0,c1,k)
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ * @param h public key
+ * @param random Secure Random
+ *
+
+
+ KEM Decapsulation
+ - Input: (h0, h1, sigma), (c0, c1)
+ - Output: k
+ * @param h0 private key
+ * @param h1 private key
+ * @param sigma private key
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ *
+
+
+ Constructor.
+
+ @param h0 h0
+ @param h1 h1
+ @param sigma random bytes sigma
+
+
+ Constructor.
+
+ @param publicKey byte
+
+
+ Karatsuba multiplication of a and b, Implementation inspired from the NTL library.
+
+ \param[out] o Polynomial
+ \param[in] a Polynomial
+ \param[in] b Polynomial
+ \param[in] size Length of polynomial
+ \param[in] stack Length of polynomial
+
+
+ @brief Compute o(x) = a(x) mod \f$ X^n - 1\f$
+
+ This function computes the modular reduction of the polynomial a(x)
+
+ @param[in] a Pointer to the polynomial a(x)
+ @param[out] o Pointer to the result
+
+
+ Generate key pairs
+ - Secret key : (x,y)
+ - Public key: (h,s)
+ @param pk output pk = (publicSeed||s)
+
+
+
+
+ HQC Encapsulation
+ - Input: pk, seed
+ - Output: c = (u,v,d), K
+
+ @param u u
+ @param v v
+ @param d d
+ @param K session key
+ @param pk public key
+ @param seed seed
+
+
+
+ HQC Decapsulation
+ - Input: ct, sk
+ - Output: ss
+
+ @param ss session key
+ @param ct ciphertext
+ @param sk secret key
+
+
+
+ HQC Encryption
+ - Input: (h,s, m)
+ - Output: (u,v) = c
+
+ @param h public key
+ @param s public key
+ @param m message
+ @param u ciphertext
+ @param v ciphertext
+
+
+
+ Base interface for a PQC signing algorithm.
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return the signature of the message
+
+
+ verify the message message against the signature value.
+
+ @param message the message that was supposed to have been signed.
+ @param signature the signature of the message
+
+
+ Type to assist in build LMS messages.
+
+
+ Increments an HSS private key without doing any work on it.
+ HSS private keys are automatically incremented when when used to create signatures.
+
+ The HSS private key is ranged tested before this incrementation is applied.
+ LMS keys will be replaced as required.
+
+ @param keyPair
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters array of LMS parameters, one per level in the hierarchy (up to 8 levels).
+ @param random the random byte source.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+ Reset to index will ensure that all LMS keys are correct for a given HSS index value.
+ Normally LMS keys updated in sync with their parent HSS key but in cases of sharding
+ the normal monotonic updating does not apply and the state of the LMS keys needs to be
+ reset to match the current HSS index.
+
+
+ @param src byte[], InputStream or HSSSignature
+ @param L The HSS depth, available from public key.
+ @return An HSSSignature instance.
+ @throws IOException
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters LMS parameter set to use.
+ @param random the random byte source.
+
+
+ Return the key index (the q value).
+
+ @return private key index number.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+
+ Encapsulated secret encapsulated by NTRU.
+
+
+
+
+ NTRU secret encapsulation extractor.
+
+
+
+
+ Encapsulate a secret using NTRU. Returns an as encapsulation.
+
+
+
+ NTRU website
+
+
+
+ NTRU sampling.
+
+ NTRU specification section 1.10
+
+
+
+
+ Sample_fg
+
+ random byte array
+ a pair of polynomial f and g
+
+
+
+
+ Sample_rm
+
+ random byte array
+ a pair of polynomial r and m
+
+
+
+
+ Ternary
+
+ random byte array
+ A ternary polynomial
+
+
+
+ Fixed_Type
+
+ random byte array
+ a ternary polynomial with exactly q/16 − 1 coefficients equal to 1 and q/16 − 1 coefficient equal to −1
+
+
+
+ Ternary_Plus
+
+ random byte array
+ a ternary polynomial that satisfies the non-negative correlation property
+
+
+
+ An OW-CPA secure deterministic public key encryption scheme (DPKE).
+
+
+
+
+ Generate a DPKE key pair.
+
+ a random byte array
+ DPKE key pair
+
+
+
+ DPKE encryption.
+
+
+
+
+ DPKE ciphertext
+
+
+
+ DPKE decryption.
+
+
+
+ an instance of containing packed_rm an fail flag
+
+
+ Largest serialized public key size, in bytes
+
+
+ Largest signature size, in bytes
+
+
+ parameters
+
+
+
+
+
+ Compressed Dlogs
+
+
+ DLOG
+
+
+
+
+
+ Interprets m as SPX_FORS_HEIGHT-bit unsigned integers.
+ Assumes m contains at least SPX_FORS_HEIGHT * SPX_FORS_TREES bits.
+ Assumes indices has space for SPX_FORS_TREES integers.
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Return the SPHINCS+ parameters that map to the passed in parameter ID.
+
+ @param id the oid of interest.
+ @return the parameter set.
+
+
+ Return the OID that maps to the passed in SPHINCS+ parameters.
+
+ @param params the parameters of interest.
+ @return the OID for the parameter set.
+
+
+ SPHINCS+ signer.
+
+ This version is based on the 3rd submission with deference to the updated reference
+ implementation on github as at November 9th 2021. This version includes the changes
+ for the countermeasure for the long-message second preimage attack - see
+ "https://github.com/sphincs/sphincsplus/commit/61cd2695c6f984b4f4d6ed675378ed9a486cbede"
+ for further details.
+
+
+
+ Base constructor.
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding.
+ the PrivateKeyInfo encoding
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding read from a stream
+ the stream to read the PrivateKeyInfo encoding from
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from the passed in PKCS8 PrivateKeyInfo object.
+ the PrivateKeyInfo object containing the key material
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key.
+ the key to be encoded into the info object.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+ the key to be encoded into the info object.
+ the set of attributes to be included.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding
+ the SubjectPublicKeyInfo encoding
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding read from a stream
+ the stream to read the SubjectPublicKeyInfo encoding from
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ default parameters that might be needed.
+ the appropriate key parameter
+ on an error decoding the key
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+ Base class for a TLS client.
+
+
+
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ The default implementation calls this to get the connection_id extension
+ the client will send. As future communication doesn't include the connection IDs length, this should either
+ be fixed-length or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+
+
+
+
+
+
+ an of (or null).
+
+
+ The default implementation calls this to determine which named
+ groups to include in the supported_groups extension for the ClientHello.
+ The named group roles for which there should
+ be at least one supported group. By default this is inferred from the offered cipher suites and signature
+ algorithms.
+ an of . See for group constants.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for supporting a TLS key exchange implementation.
+
+
+ Base class for supporting a TLS key exchange factory implementation.
+
+
+ Base class for a TLS client or server.
+
+
+ Get the values that are supported by this peer.
+
+ WARNING: Mixing DTLS and TLS versions in the returned array is currently NOT supported. Use a separate
+ (sub-)class for each case.
+
+ an array of supported values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for a TLS server.
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ This method will be called if a connection_id extension was sent by the client.
+ If the return value is non-null, the server will send this connection ID to the client to use in future packets.
+ As future communication doesn't include the connection IDs length, this should either be fixed-length
+ or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+ RFC 5246 7.2.
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection.
+
+ Note that as of TLS 1.1, failure to properly close a connection no longer requires that a session not be
+ resumed. This is a change from TLS 1.0 ("The session becomes unresumable if any connection is terminated
+ without proper close_notify messages with level equal to warning.") to conform with widespread
+ implementation practice.
+
+
+
+ An inappropriate message was received.
+
+ This alert is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ This alert is returned if a record is received with an incorrect MAC.
+
+ This alert also MUST be returned if an alert is sent because a TLSCiphertext decrypted in an invalid way:
+ either it wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks against the CBC
+ mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes.
+
+ This message is always fatal and should never be observed in communication between proper implementations
+ (except when messages were corrupted in the network).
+
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length).
+
+ This message is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to negotiate
+ an acceptable set of security parameters given the options available.
+
+ This is a fatal error.
+
+
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it unacceptable.
+
+
+
+ A field in the handshake was out of range or inconsistent with other fields.
+
+ This message is always fatal.
+
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted CA.
+
+ This message is always fatal.
+
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not to
+ proceed with negotiation.
+
+ This message is always fatal.
+
+
+
+ A message could not be decoded because some field was out of the specified range or the length of
+ the message was incorrect.
+
+ This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a signature
+ or validate a Finished message.
+
+ This message is always fatal.
+
+
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+
+
+ (For example, old protocol versions might be avoided for security reasons.) This message is always fatal.
+
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client.
+
+ This message is always fatal.
+
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue.
+
+ This message is always fatal.
+
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure.
+
+ If the user cancels an operation after the handshake is complete, just closing the connection by sending a
+ close_notify is more appropriate. This alert should be followed by a close_notify. This message is
+ generally a warning.
+
+
+
+ Sent by the client in response to a hello request or by the server in response to a client hello
+ after initial handshaking.
+
+ Either of these would normally lead to renegotiation; when that is not appropriate, the recipient should
+ respond with this alert. At that point, the original requester can decide whether to proceed with the
+ connection. One case where this would be appropriate is where a server has spawned a process to satisfy a
+ request; the process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This message is always a
+ warning.
+
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did not
+ put in the corresponding client hello.
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL supplied
+ by the client(see Section 3.3).
+
+ This message MAY be fatal - for example if client authentication is required by the server for the
+ handshake to continue and the server is unable to retrieve the certificate chain, it may send a fatal
+ alert.
+
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not recognize
+ the server name.
+
+ This message MAY be fatal.
+
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see Section 3.6
+ ).
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash.
+
+ This message is always fatal.
+
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an "unknown_psk_identity"
+ alert message.
+
+
+ In the event that the server supports no protocols that the client advertises, then the server
+ SHALL respond with a fatal "no_application_protocol" alert.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version, the server MUST
+ respond with a fatal inappropriate_fallback alert[..].
+
+
+ Sent by endpoints that receive a handshake message not containing an extension that is mandatory
+ to send for the offered TLS version or other negotiated parameters.
+
+
+ Sent by servers when a client certificate is desired but none was provided by the client.
+
+
+
+ RFC 5246 7.2
+
+
+ A basic PSK Identity holder.
+
+
+ A basic SRP Identity holder.
+
+
+ A queue for bytes. This file could be more optimized.
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided .
+ The to copy the bytes to.
+ How many bytes to copy.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a over some bytes at the beginning of the data.
+
+ How many bytes will be readable.
+ A over the data.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Remove data from the buffer.
+ The buffer where the removed data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ OutputStream based on a ByteQueue implementation.
+
+
+ Implementation of the RFC 3546 3.3. CertChainType.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+
+
+ an array of representing a certificate chain.
+
+
+ true if this certificate chain contains no certificates, or false otherwise.
+
+
+
+ Encode this to a , and optionally calculate the
+ "end point hash" (per RFC 5929's tls-server-end-point binding).
+ the of the current connection.
+ the to encode to.
+ the to write the "end point hash" to (or null).
+
+
+
+
+ Parse a from a .
+ the to apply during parsing.
+ the of the current connection.
+ the to parse from.
+ the to write the "end point hash" to (or null).
+
+ a object.
+
+
+
+ RFC 8879
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>;
+ } CertificateRequest;
+
+ Updated for RFC 5246:
+
+ struct {
+ ClientCertificateType certificate_types <1..2 ^ 8 - 1>;
+ SignatureAndHashAlgorithm supported_signature_algorithms <2 ^ 16 - 1>;
+ DistinguishedName certificate_authorities <0..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+ Revised for RFC 8446:
+
+ struct {
+ opaque certificate_request_context <0..2 ^ 8 - 1>;
+ Extension extensions <2..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+
+
+
+
+
+
+
+
+ see for valid constants.
+
+ an of .
+
+
+
+
+
+ an array of certificate types
+
+
+
+ an of (or null before TLS 1.2).
+
+
+
+ an optional of . May be non-null from
+ TLS 1.3 onwards.
+
+
+ an of .
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ an of (possibly null) .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ Implementation of the RFC 3546 3.6. CertificateStatusRequest.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Implementation of the RFC 6961 2.2. CertificateStatusRequestItemV2.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6091
+
+
+ RFC 3546 3.3
+
+
+ see for valid constants.
+ an of .
+
+
+
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ a value.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 5056
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g.serialization).
+
+
+
+ RFC 2246 A.5
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ for DTLS this should be non-null; the input is copied to this
+ , minus the cookie field.
+ a object.
+
+
+
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ RFC 2246 6.1
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values(e.g.serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+ Carrier class for Diffie-Hellman group parameters.
+
+
+ Base constructor with the prime factor of (p - 1).
+ the prime modulus.
+ specifies the prime factor of (p - 1).
+ the base generator.
+
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ Base class for a TlsCrypto implementation that provides some needed methods from elsewhere in the impl
+ package.
+
+
+ Base class for a TlsSecret implementation which captures common code and fields.
+
+
+ Base constructor.
+ the byte[] making up the secret value.
+
+
+
+
+
+ Credentialed class generating agreed secrets from a peer's public key for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class decrypting RSA encrypted secrets sent from a peer for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class for generating signatures based on the use of primitives from the BC light-weight API.
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104).
+
+ The difference is that padding is concatenated versus XORed with the key, e.g:
+ H(K + opad, H(K + ipad, text))
+
+
+
+ Base constructor for one of the standard digest algorithms for which the byteLength is known.
+
+
+ Behaviour is undefined for digests other than MD5 or SHA1.
+
+ the digest.
+
+
+ Reset the mac generator.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class for providing cryptographic services for TLS based on implementations in the BC light-weight API.
+
+ This class provides default implementations for everything. If you need to customise it, extend the class
+ and override the appropriate methods.
+
+
+
+ Support class for ephemeral Diffie-Hellman using the BC light-weight library.
+
+
+ BC light-weight support class for Diffie-Hellman key pair generation and key agreement over a
+ specified Diffie-Hellman configuration.
+
+
+
+
+
+
+
+
+ Implementation class for generation of the raw DSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw DSA signature type using the BC light-weight API.
+
+
+
+ BC light-weight base class for the signers implementing the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ BC light-weight base class for the verifiers supporting the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ Support class for ephemeral Elliptic Curve Diffie-Hellman using the BC light-weight library.
+
+
+ EC domain class for generating key pairs and performing key agreement.
+
+
+
+
+
+ Implementation class for generation of ECDSA signatures in TLS 1.3+ using the BC light-weight API.
+
+
+
+ Implementation class for generation of the raw ECDSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw ECDSA signature type using the BC light-weight
+ API.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Operator supporting the generation of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the verification of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the generation of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ Operator supporting the verification of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ BC light-weight support class for handling TLS secrets and deriving key material and other secrets
+ from them.
+
+
+ Support class for X25519 using the BC light-weight library.
+
+
+ Support class for X448 using the BC light-weight library.
+
+
+ A generic TLS 1.2 AEAD cipher.
+
+
+
+
+
+ Base interface for services supporting AEAD encryption/decryption.
+
+
+ Set the key to be used by the AEAD cipher implementation supporting this service.
+ array holding the AEAD cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for the AEAD operator.
+ the nonce.
+ MAC size in bytes.
+ any additional data to be included in the MAC calculation.
+ if the parameters are inappropriate.
+
+
+ Return the maximum size of the output for input of inputLength bytes.
+ the length (in bytes) of the proposed input.
+ the maximum size of the output.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ A generic TLS 1.0-1.2 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+ Interface for block cipher services.
+
+
+ Set the key to be used by the block cipher implementation supporting this service.
+ array holding the block cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for operator.
+ array holding the initialization vector (IV).
+ offset into the array the IV starts at.
+ length of the IV in the array.
+ if the parameters are inappropriate.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ Return the blocksize (in bytes) of the underlying block cipher.
+ the cipher's blocksize.
+
+
+ Useful utility methods.
+
+
+ The NULL cipher.
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+ Generate a new instance of a TlsMac.
+ the TLS client context specific crypto parameters.
+ The MAC to use.
+
+
+ Base interface for a generic TLS MAC implementation for use with a bulk cipher.
+
+
+ Return the output length (in bytes) of this MAC.
+ The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ A new byte array containing the MAC value.
+
+
+ Constant time calculation of the MAC for some given data with a given expected length.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ The expected length of the full message.
+ Random data for padding out the MAC calculation if required.
+ A new byte array containing the MAC value.
+
+
+ Carrier class for SRP-6 group parameters.
+
+
+ Base constructor.
+ the n value.
+ the g value.
+
+
+ A selection of standard groups for SRP-6.
+
+
+
+
+
+
+
+
+ Base interface for ephemeral key agreement calculator.
+
+
+ Generate an ephemeral key pair, returning the encoding of the public key.
+ a byte encoding of the public key.
+
+
+
+ Pass in the public key for the peer to the agreement calculator.
+ a byte encoding of the peer public key.
+
+
+
+ Calculate the agreed secret based on the calculator's current state.
+ the calculated secret.
+
+
+
+ Interface providing the functional representation of a single X.509 certificate.
+
+
+ Return an encryptor based on the public key in this certificate.
+
+ a based on this certificate's public key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the OID of this certificate's 'signatureAlgorithm', as a string.
+
+
+
+
+
+
+
+
+
+
+ true if (and only if) this certificate can be used to verify the given signature algorithm.
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS bulk cipher.
+
+
+ Return the maximum input size for a ciphertext given a maximum output size for the plaintext of
+ plaintextLimit bytes.
+ the maximum output size for the plaintext.
+ the maximum input size of the ciphertext for plaintextlimit bytes of output.
+
+
+ Return the maximum output size for a ciphertext given an actual input plaintext size of
+ plaintextLength bytes and a maximum input plaintext size of plaintextLimit bytes.
+ the actual input size for the plaintext.
+ the maximum input size for the plaintext.
+ the maximum output size of the ciphertext for plaintextlimit bytes of input.
+
+
+ Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.
+ the maximum number of bytes of ciphertext.
+ the maximum size of the plaintext for ciphertextlimit bytes of input.
+
+
+ Encode the passed in plaintext using the current bulk cipher.
+ sequence number of the message represented by plaintext.
+ content type of the message represented by plaintext.
+ used for the record.
+ extra bytes to allocate at start of returned byte array.
+ array holding input plaintext to the cipher.
+ offset into input array the plaintext starts at.
+ length of the plaintext in the array.
+ A containing the result of encoding (after 'headerAllocation' unused
+ bytes).
+
+
+
+ Decode the passed in ciphertext using the current bulk cipher.
+ sequence number of the message represented by ciphertext.
+ content type used in the record for this message.
+ used for the record.
+ array holding input ciphertext to the cipher.
+ offset into input array the ciphertext starts at.
+ length of the ciphertext in the array.
+ A containing the result of decoding.
+
+
+
+
+
+
+
+
+
+ Service and object creation interface for the primitive types and services that are associated with
+ cryptography in the API.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS 1.2.
+ A list of
+ values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS versions older than 1.2.
+ An array of values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto can support the passed in hash algorithm.
+ the algorithm of interest.
+ true if cryptoHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ the algorithm of interest.
+ true if cryptoSignatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support DH key agreement.
+ true if this instance can support DH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support ECDH key agreement.
+ true if this instance can support ECDH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in block/stream encryption algorithm.
+
+ the algorithm of interest.
+ true if encryptionAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support HKDF with the passed in hash algorithm.
+ the algorithm of interest.
+ true if HKDF is supported with cryptoHashAlgorithm, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in MAC algorithm.
+ the algorithm of interest.
+ true if macAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto supports the passed in named group
+ value.
+ true if this instance supports the passed in named group value.
+
+
+
+ Return true if this TlsCrypto can support RSA encryption/decryption.
+ true if this instance can support RSA encryption/decryption, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ true if signatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm.
+ the algorithm of interest.
+ true if sigAndHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature scheme.
+ the scheme of interest.
+ true if signatureScheme is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support SRP authentication.
+ true if this instance can support SRP authentication, false otherwise.
+
+
+ Create a TlsSecret object based on provided data.
+ the data to base the TlsSecret on.
+ a TlsSecret based on the provided data.
+
+
+ Create a TlsSecret object containing a randomly-generated RSA PreMasterSecret
+ the client version to place in the first 2 bytes
+ a TlsSecret containing the PreMasterSecret.
+
+
+ Return the primary (safest) SecureRandom for this crypto.
+ a SecureRandom suitable for key generation.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of an X.509 certificate.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of a certificate.
+ Certificate type as per IANA TLS Certificate Types registry.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a cipher for the specified encryption and MAC algorithms.
+
+ See enumeration classes , for appropriate
+ argument values.
+
+ context specific parameters.
+ the encryption algorithm to be employed by the cipher.
+ the MAC algorithm to be employed by the cipher.
+ a implementing the encryption and MAC algorithms.
+
+
+
+ Create a domain object supporting the domain parameters described in dhConfig.
+ the config describing the DH parameters to use.
+ a TlsDHDomain supporting the parameters in dhConfig.
+
+
+ Create a domain object supporting the domain parameters described in ecConfig.
+ the config describing the EC parameters to use.
+ a TlsECDomain supporting the parameters in ecConfig.
+
+
+ Adopt the passed in secret, creating a new copy of it.
+ the secret to make a copy of.
+ a TlsSecret based on the original secret.
+
+
+ Create a suitable hash for the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the hash needs to implement.
+ a .
+
+
+ Create a suitable HMAC for the MAC algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the MAC algorithm the HMAC needs to match.
+ a .
+
+
+ Create a suitable HMAC using the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the HMAC should use.
+ a .
+
+
+ Create a nonce generator.
+
+ Each call should construct a new generator, and the generator should be returned from this call only after
+ automatically seeding from this 's entropy source, and from the provided additional
+ seed material. The output of each returned generator must be completely independent of the others.
+
+ context-specific seed material
+ a .
+
+
+ Create an SRP-6 client.
+ client config.
+ an initialised SRP6 client object.
+
+
+ Create an SRP-6 server.
+ server config.
+ the SRP6 verifier value.
+ an initialised SRP6 server object.
+
+
+ Create an SRP-6 verifier generator.
+ generator config.
+ an initialized SRP6 verifier generator.
+
+
+ Setup an initial "secret" for a chain of HKDF calls (RFC 5869), containing a string of HashLen
+ zeroes.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+
+
+ Basic exception class for crypto services to pass back a cause.
+
+
+ Carrier class for context-related parameters needed for creating secrets and ciphers.
+
+
+ Base constructor.
+ the context for this parameters object.
+
+
+
+
+
+
+
+
+ Basic config for Diffie-Hellman.
+
+
+ Domain interface to service factory for creating Diffie-Hellman operators.
+
+
+ Return an agreement operator suitable for ephemeral Diffie-Hellman.
+ a key agreement operator.
+
+
+ Carrier class for Elliptic Curve parameter configuration.
+
+
+ Return the group used.
+ the named group used.
+
+
+ Domain interface to service factory for creating Elliptic-Curve (EC) based operators.
+
+
+ Return an agreement operator suitable for ephemeral EC Diffie-Hellman.
+ a key agreement operator.
+
+
+ Base interface for an encryptor.
+
+
+ Encrypt data from the passed in input array.
+ byte array containing the input data.
+ offset into input where the data starts.
+ the length of the data to encrypt.
+ the encrypted data.
+
+
+
+ Interface for message digest, or hash, services.
+
+
+ Update the hash with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated hash for any input passed in.
+ the hash value.
+
+
+ Return a clone of this hash object representing its current state.
+ a clone of the current hash.
+
+
+ Reset the hash underlying this service.
+
+
+ Interface for MAC services based on HMAC.
+
+
+ Return the internal block size for the message digest underlying this HMAC service.
+ the internal block size for the digest (in bytes).
+
+
+ Interface for MAC services.
+
+
+ Set the key to be used by the MAC implementation supporting this service.
+ array holding the MAC key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+ Update the MAC with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated MAC for any input passed in.
+ the MAC value.
+
+
+ Write the calculated MAC to an output buffer.
+ output array to write the MAC to.
+ offset into the output array to write the MAC to.
+
+
+ Return the length of the MAC generated by this service.
+ the MAC length.
+
+
+ Reset the MAC underlying this service.
+
+
+ Generate a nonce byte[] string.
+ the length, in bytes, of the nonce to generate.
+ the nonce value.
+
+
+ The cipher for TLS_NULL_WITH_NULL_NULL.
+
+
+ Interface supporting the generation of key material and other SSL/TLS secret values from PRFs.
+
+
+
+ Calculate an HMAC with this secret's data as the key.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ array containing the input data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return a new secret based on applying a PRF to this one.
+ PRF algorithm to use.
+ the label details.
+ the seed details.
+ the size (in bytes) of the secret to generate.
+ the new secret.
+
+
+ Destroy the internal state of the secret.
+
+ After this call, any attempt to use the will result in an
+ being thrown.
+
+
+
+ Return an encrypted copy of the data this secret is based on.
+ the encryptor to use for protecting the internal data.
+ an encrypted copy of this secret's internal data.
+
+
+
+ Return the internal data from this secret.
+
+ The does not keep a copy of the data. After this call, any attempt to use the
+ will result in an being thrown.
+
+ the secret's internal data.
+
+
+ RFC 5869 HKDF-Expand function, with this secret's data as the pseudo-random key ('prk').
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ optional context and application specific information (can be zero-length).
+ length of output keying material in octets.
+ output keying material (of 'length' octets).
+
+
+ RFC 5869 HKDF-Extract function, with this secret's data as the 'salt'.
+
+ The does not keep a copy of the data. After this call, any attempt to use
+ the will result in an being thrown.
+
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ input keying material.
+ a pseudo-random key (of HashLen octets).
+
+
+ Base interface for a TLS signer that works on raw message digests.
+
+
+ Generate an encoded signature based on the passed in hash.
+ the signature algorithm to use.
+ the hash calculated for the signature.
+ an encoded signature.
+ in case of an exception processing the hash.
+
+
+
+
+
+ Basic interface for an SRP-6 client implementation.
+
+
+ Generates the secret S given the server's credentials
+ The server's credentials
+ Client's verification message for the server
+ If server's credentials are invalid
+
+
+ Generates client's credentials given the client's salt, identity and password
+ The salt used in the client's verifier.
+ The user's identity (eg. username)
+ The user's password
+ Client's public value to send to server
+
+
+ Basic interface for an SRP-6 server implementation.
+
+
+ Generates the server's credentials that are to be sent to the client.
+ The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+
+ The client's credentials.
+ A shared secret .
+ If client's credentials are invalid.
+
+
+ Base interface for a generator for SRP-6 verifiers.
+
+
+ Creates a new SRP-6 verifier value.
+ The salt to use, generally should be large and random
+ The user's identifying information (eg. username)
+ The user's password
+ A new verifier for use in future SRP authentication
+
+
+ Basic config for SRP.
+
+
+ Return the (N, g) values used in SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+ Set the (N, g) values used for SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS verifier that works with signatures and either raw message digests, or entire
+ messages.
+
+
+
+
+
+ Return true if the passed in signature and hash represent a real signature.
+ the signature object containing the signature to be verified.
+ the hash calculated for the signature.
+ true if signature verifies, false otherwise.
+ in case of an exception verifying signature.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object sending and receiving DTLS data.
+
+
+ Container class for generating signatures that carries the signature type, parameters, public key
+ certificate and public key's associated signer object.
+
+
+ Accept named groups and various standard DH groups with 'P' at least
+ bits.
+
+
+ Accept named groups and various standard DH groups with 'P' at least the specified number of bits.
+
+ the minimum bitlength of 'P'.
+
+
+ Accept named groups and a custom set of group parameters, subject to a minimum bitlength for 'P'.
+
+ a list of acceptable s.
+ the minimum bitlength of 'P'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+ an of acceptable .
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+
+
+
+
+
+
+ a (or null before TLS 1.2).
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ the 48-bit DTLSPlainText.sequence_number field of a received record.
+ true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+ indicates whether is now the latest confirmed
+ sequence number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The record is newer (by epoch and sequence number) than any record received previously.
+
+
+ The record includes the (valid) connection ID (RFC 9146) for this connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4492 5.4
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+ RFC 4492 5.1.2
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6520 3.
+
+
+ RFC 6066
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 8446 4.6.3
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7919
+
+
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 3546 3.6
+
+
+ an of , specifying the list of
+ trusted OCSP responders. An empty list has the special meaning that the responders are implicitly known to
+ the server - e.g., by prior arrangement.
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+
+ an of .
+
+
+ OCSP request extensions.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse an from a .
+ the to parse from.
+ an object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7301 Represents a protocol name for use with ALPN.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Connection ID we use during communication to the peer.
+
+
+ Connection ID our peer uses for communication to us.
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 3. Server Name Indication
+
+ Current implementation uses this guidance: "For backward compatibility, all future data structures associated
+ with new NameTypes MUST begin with a 16-bit length field. TLS MAY treat provided server names as opaque data
+ and pass the names and types to the application.". RFC 6066 specifies ASCII encoding for host_name (possibly
+ using A-labels for IDNs), but note that the previous version (RFC 4366) specified UTF-8 encoding (see RFC 6066
+ Appendix A). For maximum compatibility, it is recommended that client code tolerate receiving UTF-8 from the
+ peer, but only generate ASCII itself.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ an of .
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to .
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ For TLS 1.3+ usage, some signature schemes are constrained to use a particular
+ ({@link NamedGroup}. Not relevant for TLS 1.2 and below.
+
+
+ An implementation of that simulates the existence of "unknown"
+ identities to obscure the fact that there is no verifier for them.
+
+
+ Create a that implements the algorithm from RFC 5054
+ 2.5.1.3.
+
+ the defining the group that SRP is operating in.
+ the secret "seed key" referred to in RFC 5054 2.5.1.3.
+ an instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4680
+
+
+ Base interface to provide TLS authentication credentials.
+
+
+ Called by the protocol handler to report the server certificate.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the server certificate received.
+
+
+
+ Return client credentials in response to server's certificate request.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated and the details of
+ the .
+
+ details of the certificate request.
+ a object or null for no client authentication.
+
+
+
+ Return the session this client wants to resume, if any.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection, or
+ null to use a new session.
+
+
+
+ Return the external PSKs to offer in the ClientHello.
+ This will only be called when TLS 1.3 or higher is amongst the offered protocol versions.
+ an of instances, or null if none should be
+ offered.
+
+
+ (Int32 -> byte[])
+
+
+
+ If this client is offering TLS 1.3 or higher, this method may be called to determine for which
+ groups a key share should be included in the initial ClientHello.
+
+ Groups that were not included in the supported_groups extension (by will
+ be ignored. The protocol will then add a suitable key_share extension to the ClientHello extensions.
+
+ an of named group values, possibly empty or
+ null.
+
+
+
+
+
+
+ Notifies the client of the session that will be offered in ClientHello for resumption, if any.
+
+
+ This will be either the session returned from {@link #getSessionToResume()} or null if that session was
+ unusable. NOTE: the actual negotiated session_id is notified by .
+
+ The representing the resumable session to be offered for
+ this connection, or null if there is none.
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+
+
+
+
+
+
+ The protocol implementation validates that any server extensions received correspond to client
+ extensions sent.
+
+ If further processing of the server extensions is needed, it can be done in this callback. NOTE: This is
+ not called for session resumption handshakes.
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The ticket is
+ opaque to the client and clients MUST NOT examine the ticket under the assumption that it complies with e.g.
+ RFC 5077 4. "Recommended Ticket Construction".
+
+ The ticket.
+
+
+
+ Marker interface to distinguish a TLS client context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS context implementation.
+
+
+ Return true if this context is for a server, false otherwise.
+ true for a server based context, false for a client based one.
+
+
+ Used to get the resumable session, if any, used by this connection.
+
+ Only available after the handshake has successfully completed.
+
+ A representing the resumable session used by this connection, or null if
+ no resumable session available.
+
+
+
+ Used to get the session information for this connection.
+
+ Only available after the handshake has successfully completed. Use
+ to find out if the session is resumable.
+
+ A representing the session used by this connection.
+
+
+
+ Export the value of the specified channel binding.
+
+ Only available after the handshake has successfully completed.
+
+ A constant specifying the channel binding to
+ export.
+ A copy of the channel binding data as a byte[], or null if the binding could not be
+ determined.
+
+
+ Export (early data) keying material according to RFC 5705: "Keying Material Exporters for TLS", as
+ updated for TLS 1.3 (RFC 8446).
+
+ NOTE: for use in settings where an exporter is needed for 0-RTT data.
+
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS", as updated for
+ TLS 1.3 (RFC 8446) when negotiated.
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Support interface for generating a secret based on the credentials sent by a TLS peer.
+
+
+ Calculate an agreed secret based on our credentials and the public key credentials of our peer.
+
+ public key certificate of our TLS peer.
+ the agreed secret.
+ in case of an exception on generation of the secret.
+
+
+ Base interface for a class that decrypts TLS secrets.
+
+
+ Decrypt the passed in cipher text using the parameters available.
+ the parameters to use for the decryption.
+ the cipher text containing the secret.
+ a TLS secret.
+ on a parsing or decryption error.
+
+
+ Support interface for generating a signature based on our private credentials.
+
+
+ Generate a signature against the passed in hash.
+ a message digest calculated across the message the signature is to apply to.
+ an encoded signature.
+ if the hash cannot be processed, or there is an issue with the private
+ credentials.
+
+
+ Return the algorithm IDs for the signature algorithm and the associated hash it uses.
+ the full algorithm details for the signature.
+
+
+
+
+
+ Base interface for interfaces/classes carrying TLS credentials.
+
+
+ Return the certificate structure representing our identity.
+ our certificate structure.
+
+
+ (D)TLS DH_anon key exchange.
+
+
+ Interface for verifying explicit Diffie-Hellman group parameters.
+
+
+ Check whether the given DH group is acceptable for use.
+ the to check.
+ true if (and only if) the specified group is acceptable.
+
+
+ (D)TLS DH key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (D)TLS ECDH_anon key exchange (see RFC 4492).
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+ (Int32 -> byte[])
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object that can calculate a handshake hash.
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface for a key exchange factory offering a variety of specific algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This exception will be thrown (only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+ Object Identifiers associated with TLS extensions.
+
+
+ RFC 7633
+
+
+ Base interface for a (D)TLS endpoint.
+
+
+
+
+
+ Notifies the peer that a new handshake is about to begin.
+
+
+
+ Specify the timeout, in milliseconds, to use for the complete handshake process.
+
+ NOTE: Currently only respected by DTLS protocols. Negative values are not allowed. A timeout of zero means
+ an infinite timeout (i.e.the handshake will never time out).
+
+ the handshake timeout, in milliseconds.
+
+
+ Specify the time, in milliseconds, after which a handshake packet is resent.
+
+ NOTE: Currently only respected by DTLS protocols.
+
+ the handshake resend time, in milliseconds.
+
+
+
+ This option is provided as a last resort for interoperability with TLS peers that fail to correctly send a
+ close_notify alert at end of stream. Implementations SHOULD return true; caution is advised if returning
+ false without a full understanding of the implications.
+
+
+
+ This implementation supports RFC 7627 and will always negotiate the extended_master_secret
+ extension where possible. When connecting to a peer that does not offer/accept this extension, it is
+ recommended to abort the handshake.This option is provided for interoperability with legacy peers, although
+ some TLS features will be disabled in that case (see RFC 7627 5.4).
+
+ true if the handshake should be aborted when the peer does not negotiate the
+ extended_master_secret extension, or false to support legacy interoperability.
+
+
+ See RFC 5246 6.2.3.2. Controls whether block cipher encryption may randomly add extra padding
+ beyond the minimum.
+
+ Note that in configurations where this is known to be potential security risk this setting will be ignored
+ (and extended padding disabled). Extra padding is always supported when decrypting received records.
+
+ true if random extra padding should be added during block cipher encryption, or
+ false to always use the minimum amount of required padding.
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the ability to set
+ gmt_unix_time as an option only, off by default.".
+
+ NOTE: For a server that has negotiated TLS 1.3 (or later), or a client that has offered TLS 1.3 (or later),
+ this is not called and gmt_unix_time is not used.
+
+ true if the current time should be used in the gmt_unix_time field of Random, or
+ false if gmt_unix_time should contain a cryptographically random value.
+
+
+ RFC 5746 3.4/3.6. In case this is false, peers may want to terminate the handshake instead of
+ continuing; see Section 4.1/4.3 for discussion.
+
+ NOTE: TLS 1.3 forbids renegotiation, so this is never called when TLS 1.3 (or later) was negotiated.
+
+
+
+
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ Return a instance that will control the generation of heartbeats
+ locally (if permitted by the remote peer), or null to not generate heartbeats. Heartbeats are described in
+ RFC 6520.
+ an instance of .
+
+
+
+ Return the heartbeat mode applicable to the remote peer. Heartbeats are described in RFC 6520.
+
+
+ See enumeration class for appropriate return values.
+
+ the value.
+
+
+ Indicates whether a DTLS connection should ignore corrupt records (bad_record_mac) instead of
+ failing the connection.
+ Called only once at the start of a connection and applies throughout.
+ The value true to ignore corrupt DTLS records, or false to fail the connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method is called, when a change cipher spec message is received.
+ If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network.
+
+ The method will return immediately, if there is still some data left in the buffer, or block until some
+ application data has been read from the network.
+
+ The buffer where the data will be copied to.
+ The position where the data will be placed in the buffer.
+ The maximum number of bytes to read.
+ The number of bytes read.
+ If something goes wrong during reading data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Write some application data.
+
+ Fragmentation is handled internally. Usable in both blocking/non-blocking modes.
+ In blocking mode, the output will be automatically sent via the underlying transport. In non-blocking mode,
+ call to get the output bytes to send to the peer.
+ This method must not be called until after the initial handshake is complete. Attempting to call it earlier
+ will result in an .
+
+ The buffer containing application data to send.
+ The offset at which the application data begins
+ The number of bytes of application data.
+ If called before the initial handshake has completed.
+
+ If connection is already closed, or for encryption or transport errors.
+
+
+
+
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+
+
+
+
+
+
+
+ Equivalent to OfferInput(input, 0, input.Length)
.
+ The input buffer to offer.
+
+
+
+
+ Offer input from an arbitrary source.
+ Only allowed in non-blocking mode.
+ This method will decrypt and process all records that are fully available. If only part of a record is
+ available, the buffer will be retained until the remainder of the record is offered.
+ If any records containing application data were processed, the decrypted data can be obtained using
+ . If any records containing protocol data were processed, a
+ response may have been generated. You should always check to see if there is any available output after
+ calling this method by calling .
+
+ The input buffer to offer.
+ The offset within the input buffer that input begins.
+ The number of bytes of input being offered.
+ If an error occurs while decrypting or processing a record.
+
+
+ Gets the amount of received application data.
+ A call to is guaranteed to be able to return at least
+ this much data.
+ Only allowed in non-blocking mode.
+
+ The number of bytes of available application data.
+
+
+ Retrieves received application data.
+
+ Use to check how much application data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned.
+ Only allowed in non-blocking mode.
+
+ The buffer to hold the application data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+ Gets the amount of encrypted data available to be sent.
+
+ A call to is guaranteed to be able to return at least this much
+ data. Only allowed in non-blocking mode.
+
+ The number of bytes of available encrypted data.
+
+
+ Retrieves encrypted data to be sent.
+
+ Use to check how much encrypted data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned. Only allowed in non-blocking mode.
+
+ The buffer to hold the encrypted data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Make sure the 'buf' is now empty. Fail otherwise.
+ The to check.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Processor interface for a PSK identity.
+
+
+ Base interface for an object that can process a PSK identity.
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS RSA key exchange.
+
+
+ Interface describing a TLS server endpoint.
+
+
+ Return the specified session, if available.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ the ID of the session to resume.
+ A with the specified session ID, or null.
+
+
+
+ Return the external PSK to select from the ClientHello.
+
+ WARNING: EXPERIMENTAL FEATURE, UNSTABLE API
+ Note that this will only be called when TLS 1.3 or higher is amongst the offered protocol versions, and one
+ or more PSKs are actually offered.
+
+ an of instances.
+ The corresponding to the selected identity, or null to not select
+ any.
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Return server credentials to use.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated.
+
+ a object or null for anonymous key exchanges.
+
+
+
+
+ This method will be called (only) if the server included an extension of type "status_request" with empty
+ "extension_data" in the extended server hello. See RFC 3546 3.6. Certificate Status Request. If a
+ non-null is returned, it is sent to the client as a handshake message of
+ type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Called by the protocol handler to report the client certificate, only if
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See RFC 5077
+ 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket.
+
+
+
+ Server certificate carrier interface.
+
+
+ Marker interface to distinguish a TLS server context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a carrier object for a TLS session.
+
+
+ Interface for verifying SRP config needs to conform to.
+
+
+ Check whether the given SRP configuration is acceptable for use.
+ the to check.
+ true if (and only if) the specified configuration is acceptable.
+
+
+ Processor interface for an SRP identity.
+
+
+ Base interface for an object that can return login parameters from an SRP identity.
+
+
+ Lookup the corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC 5054 2.5.1.3.
+ is provided for this purpose.
+
+ the SRP identity sent by the connecting client.
+ the for the specified identity, or else 'simulated' parameters
+ if the identity is not recognized. A null value is also allowed, but not recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Whether a server can select the specified cipher suite given the available signature algorithms
+ for ServerKeyExchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check the signature algorithm for certificates in the peer's CertPath as specified in RFC 5246
+ 7.4.2, 7.4.4, 7.4.6 and similar rules for earlier TLS versions.
+
+ The supplied CertPath should include the trust anchor (its signature algorithm isn't checked, but in the
+ general case checking a certificate requires the issuer certificate).
+
+ if any certificate in the CertPath (excepting the trust anchor) has a
+ signature algorithm that is not one of the locally supported signature algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a pre_master_secret and send it encrypted to the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 5.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ see for valid constants.
+ valid lengths from 0 to 255.
+
+
+ see for valid constants.
+
+
+ valid lengths from 0 to 255.
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ The failure code associated with this exception, if one is set.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value the value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of the specified length, padded with
+ leading zeros as necessary.
+ @param length the fixed length of the result.
+ @param n the value to be converted.
+ @return a byte array padded to a fixed length with leading zeros.
+
+
+ Write the passed in value as unsigned bytes to the specified buffer range, padded with
+ leading zeros as necessary.
+
+ @param n
+ the value to be converted.
+ @param buf
+ the buffer to which the value is written.
+ @param off
+ the start offset in array buf
at which the data is written.
+ @param len
+ the fixed length of data written (possibly padded with leading zeros).
+
+
+
+ Creates a Random BigInteger from the secure random of a given bit length.
+
+
+
+
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+ Interface for matching objects in an .
+ The contravariant type of selectable objects.
+
+
+ Match the passed in object, returning true if it would be selected by this selector, false
+ otherwise.
+ The object to be matched.
+ true
if the objects is matched by this selector, false otherwise.
+
+
+ A generic interface describing a simple store of objects.
+ The covariant type of stored objects.
+
+
+ Enumerate the (possibly empty) collection of objects matched by the given selector.
+ The used to select matching objects.
+ An of the matching objects.
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ The DateTime value will be converted to UTC (using before
+ conversion.
+ A DateTime value not before the epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before the epoch.
+
+
+
+ Create a UTC DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+ 'unixMs' is before 'MinUnixMs' or after 'MaxUnixMs'.
+
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Return a byte array representing the implementing object.
+ An encoding of this object as a byte array.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ An
+
+
+
+
+
+ A
+
+
+
+
+
+ Seek ':" up to the limit.
+
+
+
+
+
+
+ Consume the dashes
+
+
+
+
+
+ Skip white space leave char in stream.
+
+
+
+
+ Read forward consuming the expected string.
+
+ expected string
+ false if not consumed
+
+
+
+ Consume until dash.
+
+ true if stream end not met
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ In case of IO failure.
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ The size of temporary buffer to use.
+ In case of IO failure.
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType
can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID
must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType
is
+ otherObjectDigest
.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID
must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null
if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null
if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null
if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extensions object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector
like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true
if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null
)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null
is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of List
s
+ made up of an Integer
in the first entry and a DER encoded
+ byte array or a String
in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null
)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null
is
+ given any will do.
+
+ The collection consists of GeneralName
objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of List
s
+ made up of an Integer
in the first entry and a DER encoded
+ byte array or a String
in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector
implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector
objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair
, this method
+ returns false
.
+
+ The X509CertificatePair
to be tested.
+ true
if the object matches this selector.
+
+
+
+ An ISet
of DerObjectIdentifier
objects.
+
+
+
+
+ An ICollection
of X509Name
objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null
is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate
being checked (or
+ null
)
+ @see #getAttrCertificateChecking()
+
+
+ If true
only complete CRLs are returned. Defaults to
+ false
.
+
+ @return true
if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false
.
+
+ @return Returns true
if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false
.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null
.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return the DER encoding of this certificate.
+
+ A byte array containing the DER encoding of this certificate.
+ If there is an error encoding the certificate.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ If verifier provider is not appropriate or the certificate signature algorithm
+ is invalid.
+
+
+ Verify the certificate's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the certificate's alternative
+ signature.
+ If verifier provider is not appropriate or the certificate alternative signature
+ algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Verify the CRL's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the CRL's alternative signature.
+
+ If verifier provider is not appropriate or the CRL alternative signature
+ algorithm is invalid.
+
+
+
+ Return the DER encoding of this CRL.
+
+ A byte array containing the DER encoding of this CRL.
+ If there is an error encoding the CRL.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false
{@link #getCertificateIssuer()} will always
+ return null
, previousCertificateIssuer
is
+ ignored. If this isIndirect
is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer
is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true
if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+ Value of is ignored.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ Create a builder for a version 2 CRL, initialised with another CRL.
+ Template CRL to base the new one on.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+ Create a generator for a version 3 certificate, initialised with another certificate.
+ Template certificate to base the new one on.
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/lib/netstandard2.0/BouncyCastle.Cryptography.dll b/packages/BouncyCastle.Cryptography.2.2.1/lib/netstandard2.0/BouncyCastle.Cryptography.dll
new file mode 100644
index 0000000..93ff23c
Binary files /dev/null and b/packages/BouncyCastle.Cryptography.2.2.1/lib/netstandard2.0/BouncyCastle.Cryptography.dll differ
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/lib/netstandard2.0/BouncyCastle.Cryptography.xml b/packages/BouncyCastle.Cryptography.2.2.1/lib/netstandard2.0/BouncyCastle.Cryptography.xml
new file mode 100644
index 0000000..99cccc4
--- /dev/null
+++ b/packages/BouncyCastle.Cryptography.2.2.1/lib/netstandard2.0/BouncyCastle.Cryptography.xml
@@ -0,0 +1,29053 @@
+
+
+
+ BouncyCastle.Cryptography
+
+
+
+ Elliptic curve registry for ANSSI.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Return a representing the contents of the BIT STRING. The final byte, if any,
+ may include pad bits. See .
+ A with its source as the BIT STRING content.
+
+
+
+ Return a representing the contents of the BIT STRING, where the content is
+ expected to be octet-aligned (this will be automatically checked during parsing).
+ A with its source as the BIT STRING content.
+
+
+
+ Return the number of pad bits, if any, in the final byte, if any, read from
+ .
+
+ This number is in the range zero to seven. That number of the least significant bits of the final byte, if
+ any, are not part of the contents and should be ignored. NOTE: Must be called AFTER the stream has been
+ fully processed. (Does not need to be called if was used instead of
+ .
+
+ The number of pad bits. In the range zero to seven.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ Mutable class for building ASN.1 constructed objects such as SETs or SEQUENCEs.
+
+
+ GeneralizedTime ASN.1 type
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ Return an ObjectDescriptor from the passed in object.
+
+ @param obj an ASN1ObjectDescriptor or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ Return an ObjectDescriptor from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an octet string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ Return the content of the OCTET STRING as a .
+ A represnting the OCTET STRING's content.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Needed for open types, until we have better type-guided parsing support. Use sparingly for other
+ purposes, and prefer {@link #getExplicitBaseTagged()}, {@link #getImplicitBaseTagged(int, int)} or
+ {@link #getBaseUniversal(boolean, int)} where possible. Before using, check for matching tag
+ {@link #getTagClass() class} and {@link #getTagNo() number}.
+
+
+ Needed for open types, until we have better type-guided parsing support. Use
+ sparingly for other purposes, and prefer {@link #getExplicitBaseTagged()} or
+ {@link #getBaseUniversal(boolean, int)} where possible. Before using, check
+ for matching tag {@link #getTagClass() class} and {@link #getTagNo() number}.
+
+
+
+
+
+ Needed for open types, until we have better type-guided parsing support.
+
+ Use sparingly for other purposes, and prefer or
+ where possible. Before using, check for matching tag
+ class and number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UTCTime ASN.1 type
+
+
+ return a UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an adjusted date in the range of 1950 - 2049.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ iso.org.dod.internet.private.enterprise.legion-of-the-bouncy-castle
+ 1.3.6.1.4.1.22554
+
+
+ pbe(1) algorithms
+ 1.3.6.1.4.1.22554.1
+
+
+ SHA-1(1)
+ 1.3.6.1.4.1.22554.1.1
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ SPHINCS+
+
+
+ Picnic
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ X.509 extension(4) values
+
+ 1.3.6.1.4.1.22554.4
+
+
+ KEM(4) algorithms
+
+
+ Classic McEliece
+
+
+ SABER
+
+
+ SIKE
+
+
+ Kyber
+
+
+ BIKE
+
+
+ HQC
+
+
+ Extension to tie an alternate certificate to the containing certificate.
+
+ LinkedCertificate := SEQUENCE {
+ digest DigestInfo, -- digest of PQC certificate
+ certLocation GeneralName, -- location of PQC certificate
+ certIssuer [0] Name OPTIONAL, -- issuer of PQC cert (if different from current certificate)
+ cACerts [1] GeneralNames OPTIONAL, -- CA certificates for PQC cert (one of more locations)
+ }
+
+
+
+ A parser for indefinite-length BIT STRINGs.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ See https://www.bsi.bund.de/cae/servlet/contentblob/471398/publicationFile/30615/BSI-TR-03111_pdf.pdf
+
+
+ 0.4.0.127.0.7.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA-1
+ OID: 0.4.0.127.0.7.1.1.5.1.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA224
+ OID: 0.4.0.127.0.7.1.1.5.1.1.2
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA256
+ OID: 0.4.0.127.0.7.1.1.5.1.1.3
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA384
+ OID: 0.4.0.127.0.7.1.1.5.1.1.4
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA512
+ OID: 0.4.0.127.0.7.1.1.5.1.1.5
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function RIPEMD160
+ OID: 0.4.0.127.0.7.1.1.5.1.1.6
+
+
+ Key Derivation Function for Session Keys
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ CertAnnContent ::= CMPCertificate
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedKey
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 19}, < absent >
+ GenRep: {id-it 19}, CertReqTemplateContent | < absent >
+
+ CertReqTemplateValue ::= CertReqTemplateContent
+
+ CertReqTemplateContent ::= SEQUENCE {
+ certTemplate CertTemplate,
+ keySpec Controls OPTIONAL }
+
+ Controls ::= SEQUENCE SIZE (1..MAX) OF AttributeTypeAndValue
+
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ certReqId INTEGER,
+ statusInfo PKIStatusInfo OPTIONAL,
+ hashAlg [0] AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} OPTIONAL
+ }
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Rand is the inner type
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+ id-PasswordBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 13}
+
+
+ id-DHBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 30}
+
+
+ RFC 4120: it-id: PKIX.4 = 1.3.6.1.5.5.7.4
+ RFC 4120: 1.3.6.1.5.5.7.4.1
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.2
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.3
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.4
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.5
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.6
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.7
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.10
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.11
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.12
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.13
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.14
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.15
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.16
+
+
+ Update 16, RFC 4210
+ {id-it 17}
+
+
+ Update 16, RFC 4210
+ GenRep: {id-it 18}, RootCaKeyUpdateContent
+
+
+ Update 16, RFC 4210
+ {id-it 19}
+
+
+ Update 16, RFC 4210
+ GenMsg: {id-it 20}, RootCaCertValue
+
+
+ Update-16 to RFC 4210
+ id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21}
+
+
+ RFC 4211: it-pkip: PKIX.5 = 1.3.6.1.5.5.7.5
+
+
+ RFC 4211: it-regCtrl: 1.3.6.1.5.5.7.5.1
+
+
+ RFC 4211: it-regInfo: 1.3.6.1.5.5.7.5.2
+
+
+ 1.3.6.1.5.5.7.5.1.1
+
+
+ 1.3.6.1.5.5.7.5.1.2
+
+
+ 1.3.6.1.5.5.7.5.1.3
+
+
+ 1.3.6.1.5.5.7.5.1.4
+
+
+ 1.3.6.1.5.5.7.5.1.5
+
+
+ 1.3.6.1.5.5.7.5.1.6
+
+
+ From RFC4210:
+ id-regCtrl-altCertTemplate OBJECT IDENTIFIER ::= {id-regCtrl 7}; 1.3.6.1.5.5.7.1.7
+
+
+ RFC 4211: it-regInfo-utf8Pairs: 1.3.6.1.5.5.7.5.2.1
+
+
+ RFC 4211: it-regInfo-certReq: 1.3.6.1.5.5.7.5.2.1
+
+
+ 1.2.840.113549.1.9.16.1.21
+
+ id-ct OBJECT IDENTIFIER ::= { id-smime 1 } -- content types
+
+ id-ct-encKeyWithID OBJECT IDENTIFIER ::= {id-ct 21}
+
+
+
+ id-regCtrl-algId OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 }
+
+
+ id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 }
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it TBD1}, SEQUENCE SIZE (1..MAX) OF CRLStatus
+ GenRep: {id-it TBD2}, SEQUENCE SIZE (1..MAX) OF
+ CertificateList | < absent >
+
+ CRLSource ::= CHOICE {
+ dpn [0] DistributionPointName,
+ issuer [1] GeneralNames }
+
+
+
+ CRLStatus ::= SEQUENCE {
+ source CRLSource,
+ thisUpdate Time OPTIONAL }
+
+
+ DHBMParameter ::= SEQUENCE {
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ NestedMessageContent ::= PKIMessages
+
+
+ OOBCert ::= CMPCertificate
+
+
+
+ OOBCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the DER encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PBMParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIConfirmContent ::= NULL
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL }
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId
+ OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 20}, RootCaCertValue | < absent >
+ GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent >
+
+ RootCaCertValue ::= CMPCertificate
+
+ RootCaKeyUpdateValue ::= RootCaKeyUpdateContent
+
+ RootCaKeyUpdateContent ::= SEQUENCE {
+ newWithNew CMPCertificate,
+ newWithOld [0] CMPCertificate OPTIONAL,
+ oldWithNew [1] CMPCertificate OPTIONAL
+ }
+
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ From RFC 6211
+
+ CMSAlgorithmProtection ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ signatureAlgorithm [1] SignatureAlgorithmIdentifier OPTIONAL,
+ macAlgorithm [2] MessageAuthenticationCodeAlgorithm
+ OPTIONAL
+ }
+ (WITH COMPONENTS { signatureAlgorithm PRESENT,
+ macAlgorithm ABSENT } |
+ WITH COMPONENTS { signatureAlgorithm ABSENT,
+ macAlgorithm PRESENT })
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ (IMPLICIT TAGS)
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PKIPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+
+
+ Constructor with a single pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfo the pubInfo to be published (can be null if don't care is required).
+
+
+ Constructor with multiple pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfos the pubInfos to be published (can be null if don't care is required).
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Elliptic curve registry for GOST 3410-2001 / 2012.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ Registry of available named parameters for GOST 3410-94.
+
+
+ Look up the for the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Look up the for the parameter set with the given
+ OID.
+ The OID for the parameter set.
+
+
+ Look up the OID of the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Enumerate the available parameter set names in this registry.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Boolean from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null
if not set.
+ @param indirectReference The indirect reference or null
if not set.
+ @param dataValueDescriptor The data value descriptor or null
if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null
if not set.
+ @param indirectReference The indirect reference or null
if not set.
+ @param dataValueDescriptor The data value descriptor or null
if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0
single-ASN1-type
+ 1
OCTET STRING
+ 2
BIT STRING
+
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ IA5String object - this is an Ascii string.
+
+
+ return an IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ Apply the correct validation for an INTEGER primitive following the BER rules.
+
+ @param bytes The raw encoding of the integer.
+ @return true if the (in)put fails this validation.
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a numeric string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an OID from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a printable string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a T61 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ UniversalString object.
+
+
+ return a universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a universal string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a UTF8 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return a videotex string from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a videotex string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ VisibleString object.
+
+
+ return a visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a visible string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ A Definite length BIT STRING
+
+
+ Parser for a DL encoded BIT STRING.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ Parser for definite-length tagged objects.
+
+
+ Edwards Elliptic Curve Object Identifiers (RFC 8410)
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier
value
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier
value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier
instance.
+
+ @param as CommitmentTypeQualifier
structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object
value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ Elliptic curve registry for GM.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null
.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos
is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName
or certRef
MUST be
+ null
.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName
or certRef
MUST be
+ null
.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems
is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ No longer provides any laziness.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+
+ KMACwithSHAKE128-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 256, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+
+ KMACwithSHAKE256-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 512, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+ Elliptic curve registry for NIST curves.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ 2.16.840.1.101.3.4.3.5
+
+
+ 2.16.840.1.101.3.4.3.6
+
+
+ 2.16.840.1.101.3.4.3.7
+
+
+ 2.16.840.1.101.3.4.3.8
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ RFC 6211 - id-aa-cmsAlgorithmProtect OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) 52 }
+
+
+
+ id-alg-AEADChaCha20Poly1305 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) smime(16) alg(3) 18 }
+
+ AEADChaCha20Poly1305Nonce ::= OCTET STRING (SIZE(12))
+
+
+
+ id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) alg(3) 17 }
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ RFC 5958
+
+
+ [IMPLICIT TAGS]
+
+ OneAsymmetricKey ::= SEQUENCE {
+ version Version,
+ privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
+ privateKey PrivateKey,
+ attributes [0] Attributes OPTIONAL,
+ ...,
+ [[2: publicKey [1] PublicKey OPTIONAL ]],
+ ...
+ }
+
+ PrivateKeyInfo ::= OneAsymmetricKey
+
+ Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
+
+ PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
+ { PUBLIC-KEY,
+ { PrivateKeyAlgorithms } }
+
+ PrivateKey ::= OCTET STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ PublicKey ::= BIT STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
+
+
+
+ Return true if a public key is present, false otherwise.
+
+
+ For when the public key is an ASN.1 encoding.
+
+
+ Return the public key as a raw bit string.
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ Elliptic curve registry for the SEC standard.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ Elliptic curve registry for curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt .
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+ Ukrainian object identifiers
+
+ {iso(1) member-body(2) Ukraine(804) root(2) security(1) cryptography(1) pki(1)}
+
+ { ... pki-alg(1) pki-alg-sym(3) Dstu4145WithGost34311(1) PB(1)}
+
+ DSTU4145 in polynomial basis has 2 oids, one for little-endian representation and one for big-endian
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ Parse ASN.1 objects from input , and write them to the output.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+ Holding class for the AttributeTypeAndValue structures that make up an RDN.
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ Holding class for a single Relative Distinguished Name (RDN).
+
+
+ Create a single valued RDN.
+
+ @param oid RDN type.
+ @param value RDN value.
+
+
+ Create a multi-valued RDN.
+
+ @param aAndVs attribute type/value pairs making up the RDN
+
+
+ Return the number of AttributeTypeAndValue objects in this RDN,
+
+ @return size of RDN, greater than 1 if multi-valued.
+
+
+ *
+ * RelativeDistinguishedName ::=
+ * SET OF AttributeTypeAndValue
+
+ * AttributeTypeAndValue ::= SEQUENCE {
+ * type AttributeType,
+ * value AttributeValue }
+ *
+ * @return this object as its ASN1Primitive type
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+ X.509 Section 9.8.3.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension. It shall contain
+ the algorithm identifier for the alternative digital signature algorithm used by the signer when creating an alternative
+ digital signature and by the relying party when validating the alternative digital signature.
+
+ altSignatureAlgorithm EXTENSION ::= {
+ SYNTAX AltSignatureAlgorithm
+ IDENTIFIED BY id-ce-altSignatureAlgorithm }
+
+ AltSignatureAlgorithm ::= AlgorithmIdentifier{{SupportedAlgorithms}}
+
+ When the altSignatureAlgorithm extension is included in a particular value that is an instance of a data type that
+ supports extensions, the altSignatureValue extension shall also be included.
+
+ NOTE 1 – By having a separate altSignatureAlgorithm extension, instead of having it combined with the
+ altSignatureValue extension, the alternative digital signature algorithm is protected by the alternative signature.
+ This extension may be flagged either as critical or as non-critical.
+
+ NOTE 2 – It is recommended that it be flagged as non-critical. Flagging it as critical would require all relying parties to understand
+ the extension and the alternative public-key algorithms
+
+
+ X.509 Section 9.8.4.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension.
+ This alternative signature shall be created by the issuer using its alternative private key, and it shall be verified using the
+ alternative public key of the issuer.
+
+ altSignatureValue EXTENSION ::= {
+ SYNTAX AltSignatureValue
+ IDENTIFIED BY id-ce-altSignatureValue }
+
+ AltSignatureValue ::= BIT STRING
+
+ This extension can only be created by a signer holding a multiple cryptographic algorithms public-key certificate. When
+ creating the alternative digital signature on an issued public-key certificate or CRL, the signer shall use its alternative
+ private key.
+
+ The procedures for creating and validating alternative digital signatures are specified in:
+
+ - clause 7.2.2 for public-key certificates;
+ - clause 7.10.3 for CRLs: and
+ - clause 11.4 for AVLs.
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText
class, used in
+ CertificatePolicies
X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize
here.
+
+
+
+ Creates a new DisplayText
instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText
instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText
instance.
+ Useful when reading back a DisplayText
class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable
instance.
+
+
+ Returns the stored string
object.
+
+ @return the stored text as a string
.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null
, zero is assumed, if
+ maximum is null
, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] EXPLICIT IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] EXPLICIT GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax
as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true
then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ Microsoft Server Gated Crypto (msSGC).
+ see https://www.alvestrand.no/objectid/1.3.6.1.4.1.311.10.3.3.html
+
+
+ Netscape Server Gated Crypto (nsSGC).
+ see https://www.alvestrand.no/objectid/2.16.840.1.113730.4.1.html
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference
class, used in
+ CertificatePolicies
X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization a String
value
+ @param numbers a Vector
value
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization a String
value
+ @param noticeNumbers an ASN1EncodableVector
value
+
+
+ Creates a new NoticeReference
instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector
value
+
+
+ Creates a new NoticeReference
instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence
value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object
method here.
+
+ @return a Asn1Object
value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType
is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID
must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest
.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ The OtherName object.
+
+ OtherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+
+
+ OtherName factory method.
+ @param obj the object used to construct an instance of
+ OtherName
. It must be an instance of OtherName
+
or ASN1Sequence
.
+ @return the instance of OtherName
built from the
+ supplied object.
+ @throws java.lang.IllegalArgumentException if the object passed
+ to the factory is not an instance of OtherName
or something that
+ can be converted into an appropriate ASN1Sequence
.
+
+
+ Base constructor.
+ @param typeID the type of the other name.
+ @param value the ANY object that represents the value.
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings
instance.
+
+ @param seq an Asn1Sequence
constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings
instance.
+
+ @param mappings a HashMap
value that maps
+ string
oids
+ to other string
oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo
instance.
+
+ @param policyQualifierId a PolicyQualifierId
value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo
containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string
.
+
+
+ Creates a new PolicyQualifierInfo
instance.
+
+ @param as PolicyQualifierInfo
X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object
value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax
. It must be an instance of RoleSyntax
+
or Asn1Sequence
.
+ @return the instance of RoleSyntax
built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax
or
+ Asn1Sequence
.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName)
.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string
argument representing
+ the role name, builds a GeneralName
to hold the role name
+ and calls the constructor that takes a GeneralName
.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax
by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence
that holds
+ the encoded elements used to build this RoleSyntax
.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames
holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName
holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string
object.
+ @return the role name of this RoleSyntax represented as a
+ string
object.
+
+
+ Gets the role authority as a string[]
object.
+ @return the role authority of this RoleSyntax represented as a
+ string[]
array.
+
+
+ Implementation of the method ToAsn1Object
as
+ required by the superclass ASN1Encodable
.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ X.509 Section 9.8.2.
+
+ This public-key certificate extension, when present, shall contain the subject’s alternative public key information
+
+ subjectAltPublicKeyInfo EXTENSION ::= {
+ SYNTAX SubjectAltPublicKeyInfo
+ IDENTIFIED BY id-ce-subjectAltPublicKeyInfo }
+
+ SubjectAltPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier{{SupportedAlgorithms}},
+ subjectAltPublicKey BIT STRING }
+
+ The SubjectAltPublicKeyInfo data type has the following components:
+
+ - the algorithm subcomponent, which shall hold the algorithm that this public key is an instance of
+ - the subjectAltPublicKey subcomponent, which shall hold the alternative public key
+
+ This extension may be flagged as critical or as non-critical.
+
+ NOTE – It is recommended that it be flagged as non-critical. Flagging it as critical would require relying parties to understand this
+ extension and the alternative public-key algorithm.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj
can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null
.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj
can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj
can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList
of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList
.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice
class, used in
+ CertificatePolicies
X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice
instance.
+
+ @param noticeRef a NoticeReference
value
+ @param explicitText a DisplayText
value
+
+
+ Creates a new UserNotice
instance.
+
+ @param noticeRef a NoticeReference
value
+ @param str the explicitText field as a string.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ the subject’s alternative public key information
+
+
+ the algorithm identifier for the alternative digital signature algorithm.
+
+
+ alternative signature shall be created by the issuer using its alternative private key.
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+ return the parsed value of the extension represented by the object identifier
+ passed in.
+
+ @return the parsed value of the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A unified elliptic curve registry of the various standard-specific registries.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in all the registries.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ Elliptic curve registry for the curves defined in X.962 EC-DSA.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2
.
+ @param primeP The prime p
defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m
.
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m
.
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ Packet representing AEAD encrypted data. At the moment this appears to exist in the following
+ expired draft only, but it's appearing despite this.
+
+ @ref https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ is detected and fails.
+
+ By default a missing CRC will not cause an exception. To force CRC detection use:
+
+ ArmoredInputStream aIn = ...
+
+ aIn.setDetectMissingCRC(true);
+
+
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Change how the stream should react if it encounters missing CRC checksum.
+ The default value is false (ignore missing CRC checksums). If the behavior is set to true,
+ an {@link IOException} will be thrown if a missing CRC checksum is encountered.
+
+ @param detectMissing ignore missing CRC sums
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. Any current value(s) under the same name will be
+ replaced by the new one. A null value will clear the entry for name. *
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Set an additional header entry. The current value(s) will continue to exist together
+ with the new one. Adding a null value has no effect.
+
+ @param name the name of the header entry.
+ @param value the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Base constructor specifying whether or not to use packets in the new format wherever possible.
+
+ Output stream to write to.
+ true if use new format packets, false if backwards compatible
+ preferred.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ Return the signatures fingerprint.
+ @return fingerprint (digest prefix) of the signature
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the Modification Detection (packets 18 and 19)
+
+
+ Identifier for the AEAD Encrypted Data Packet (packet 20) and version 5
+ Symmetric-Key Encrypted Session Key Packets (packet 3)
+
+
+ Identifier for the Version 5 Public-Key Packet format and corresponding new
+ fingerprint format
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ packet giving the intended recipient fingerprint.
+
+
+ packet giving the issuer key fingerprint.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ Regexp Packet - RFC 4880 5.2.3.14. Note: the RFC says the byte encoding is to be null terminated.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ RFC 4880, Section 5.2.3.25 - Signature Target subpacket.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a signing subkey to the key ring to be generated with default certification and a primary key binding signature.
+
+ The key pair.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification using SHA-1.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+
+ Add a signing subkey with specific hashed and unhashed packets associated with it and
+ default certifications, including the primary-key binding signature.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+ Thrown if the key checksum is invalid.
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+
+ Read all available objects, returning only those that are assignable to the specified type.
+
+ An containing the filtered objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The key ID associated with the public key.
+
+
+ The fingerprint of the public key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this could be a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Return any userIDs associated with the key in raw byte form.
+ No attempt is made to convert the IDs into strings.
+ An IEnumerable of byte[].
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Return any signatures associated with the passed in key identifier keyID.
+ the key id to be matched.
+ An IEnumerable of PgpSignature objects issued by the key with keyID.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Encode the key to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed in raw byte form.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from (in its raw byte form).
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+
+ Merge the given local public key with another, potentially fresher copy. The resulting public key
+ contains the sum of both keys' user-ids and signatures.
+
+
+ If joinTrustPackets is set to true and the copy carries a trust packet, the joined key will copy the
+ trust-packet from the copy. Otherwise, it will carry the trust packet of the local key.
+
+ local public key.
+ copy of the public key (e.g. from a key server).
+ if true, trust packets from the copy are copied over into the resulting key.
+
+ if true, subkey signatures on the copy will be present in the
+ merged key, even if key was not a subkey before.
+ joined key.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ This method will ignore trust packets on the second copy of the certificate and instead
+ copy the local certificate's trust packets to the joined certificate.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @return joined key ring
+ @throws PGPException
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ For each subkey holds: If joinTrustPackets is set to true and the second key is carrying a trust packet,
+ the trust packet will be copied to the joined key.
+ Otherwise, the joined key will carry the trust packet of the local copy.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @param joinTrustPackets if true, trust packets from the second certificate copy will be carried over into the joined certificate
+ @param allowSubkeySigsOnNonSubkey if true, the resulting joined certificate may carry subkey signatures on its primary key
+ @return joined certificate
+ @throws PGPException
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ The fingerprint of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return any keys carrying a signature issued by the key represented by keyID.
+
+ @param keyID the key id to be matched against.
+ @return an iterator (possibly empty) of PGPPublicKey objects carrying signatures from keyID.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return the digest prefix of the signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+ Encode the signature to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Base constructor, creates an empty generator.
+
+
+
+
+ Constructor for pre-initialising the generator from an existing one.
+
+
+ sigSubV an initial set of subpackets.
+
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Return a copy of the subpackets in this vector.
+
+ @return an array containing the vector subpackets in order.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+ Return the EC curve name for the passed in OID.
+
+ @param oid the EC curve object identifier in the PGP key
+ @return a string representation of the OID.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ Wrap a PKIMessage ASN.1 structure.
+
+ PKI message.
+
+
+
+ Create a PKIMessage from the passed in bytes.
+
+ BER/DER encoding of the PKIMessage
+
+
+
+ Return true if this message has protection bits on it. A return value of true
+ indicates the message can be used to construct a ProtectedPKIMessage.
+
+
+
+
+ Wrapper for a PKIMessage with protection attached to it.
+
+
+
+
+ Wrap a general message.
+
+ If the general message does not have protection.
+ The General message
+
+
+
+ Wrap a PKI message.
+
+ If the PKI message does not have protection.
+ The PKI message
+
+
+ Message header
+
+
+ Message body
+
+
+
+ Return the underlying ASN.1 structure contained in this object.
+
+ PkiMessage structure
+
+
+
+ Determine whether the message is protected by a password based MAC. Use verify(PKMACBuilder, char[])
+ to verify the message if this method returns true.
+
+ true if protection MAC PBE based, false otherwise.
+
+
+
+ Return the extra certificates associated with this message.
+
+ an array of extra certificates, zero length if none present.
+
+
+
+ Verify a message with a public key based signature attached.
+
+ a factory of signature verifiers.
+ true if the provider is able to create a verifier that validates the signature, false otherwise.
+
+
+
+ Verify a message with password based MAC protection.
+
+ MAC builder that can be used to construct the appropriate MacCalculator
+ the MAC password
+ true if the passed in password and MAC builder verify the message, false otherwise.
+ if algorithm not MAC based, or an exception is thrown verifying the MAC.
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Add a generator to produce the recipient info required.
+
+ a generator of a recipient info object.
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ a holding class for a file of data to be processed.
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained in this message.
+
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained in this message.
+
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as string objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Dictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in X.509 certificate issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certificate X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ Protected constructor. In some cases clients have their own idea about how to encode
+ the signed attributes and calculate the signature. This constructor is to allow developers
+ to deal with that by extending off the class and overriding e.g. SignedAttributes property.
+
+ @param baseInfo the SignerInformation to base this one on.
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+
+ Carrier for an authenticator control.
+
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+
+
+
+ Create a CertificateRequestMessage from the passed in bytes.
+
+ BER/DER encoding of the CertReqMsg structure.
+
+
+
+ Return the underlying ASN.1 object defining this CertificateRequestMessage object.
+
+ A CertReqMsg
+
+
+
+ Return the certificate template contained in this message.
+
+ a CertTemplate structure.
+
+
+
+ Return whether or not this request has control values associated with it.
+
+ true if there are control values present, false otherwise.
+
+
+
+ Return whether or not this request has a specific type of control value.
+
+ the type OID for the control value we are checking for.
+ true if a control value of type is present, false otherwise.
+
+
+
+ Return a control value of the specified type.
+
+ the type OID for the control value we are checking for.
+ the control value if present, null otherwise.
+
+
+
+ Return whether or not this request message has a proof-of-possession field in it.
+
+ true if proof-of-possession is present, false otherwise.
+
+
+
+ Return the type of the proof-of-possession this request message provides.
+
+ one of: popRaVerified, popSigningKey, popKeyEncipherment, popKeyAgreement
+
+
+
+ Return whether or not the proof-of-possession (POP) is of the type popSigningKey and
+ it has a public key MAC associated with it.
+
+ true if POP is popSigningKey and a PKMAC is present, false otherwise.
+
+
+
+ Return whether or not a signing key proof-of-possession (POP) is valid.
+
+ a provider that can produce content verifiers for the signature contained in this POP.
+ true if the POP is valid, false otherwise.
+ if there is a problem in verification or content verifier creation.
+ if POP not appropriate.
+
+
+
+ Return the ASN.1 encoding of the certReqMsg we wrap.
+
+ a byte array containing the binary encoding of the certReqMsg.
+
+
+
+ Create a builder that makes EncryptedValue structures.
+
+ wrapper a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+
+
+
+
+ Create a builder that makes EncryptedValue structures with fixed length blocks padded using the passed in padder.
+
+ a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+ padder a padder to ensure that the EncryptedValue created will always be a constant length.
+
+
+
+
+ Build an EncryptedValue structure containing the passed in pass phrase.
+
+ a revocation pass phrase.
+ an EncryptedValue containing the encrypted pass phrase.
+
+
+
+
+ Build an EncryptedValue structure containing the certificate contained in
+ the passed in holder.
+
+ a holder containing a certificate.
+ an EncryptedValue containing the encrypted certificate.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Build an EncryptedValue structure containing the private key contained in
+ the passed info structure.
+
+ a PKCS#8 private key info structure.
+ an EncryptedValue containing an EncryptedPrivateKeyInfo structure.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Generic interface for a CertificateRequestMessage control value.
+
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the value contained in this control object.
+
+
+
+
+ An encrypted value padder is used to make sure that prior to a value been
+ encrypted the data is padded to a standard length.
+
+
+
+
+ Return a byte array of padded data.
+
+ the data to be padded.
+ a padded byte array containing data.
+
+
+
+
+ Return a byte array of with padding removed.
+
+ the data to be padded.
+ an array containing the original unpadded data.
+
+
+
+
+ Basic constructor - build from an PKIArchiveOptions structure.
+
+ the ASN.1 structure that will underlie this control.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_pkiArchiveOptions
+
+
+
+ Return the underlying ASN.1 object.
+
+ a PKIArchiveOptions structure.
+
+
+
+ Return the archive control type, one of: encryptedPrivKey,keyGenParameters,or archiveRemGenPrivKey.
+
+ the archive control type.
+
+
+
+ Return whether this control contains enveloped data.
+
+ true if the control contains enveloped data, false otherwise.
+
+
+
+ Return the enveloped data structure contained in this control.
+
+ a CMSEnvelopedData object.
+
+
+
+ Basic constructor - specify the contents of the PKIArchiveControl structure.
+
+ the private key to be archived.
+ the general name to be associated with the private key.
+
+
+
+ Add a recipient generator to this control.
+ recipient generator created for a specific recipient.
+ this builder object.
+
+
+ Build the PKIArchiveControl using the passed in encryptor to encrypt its contents.
+ a suitable content encryptor.
+ a PKIArchiveControl object.
+
+
+
+ Default, IterationCount = 1000, OIW=IdSha1, Mac=HmacSHA1
+
+
+
+
+ Defaults with IPKMacPrimitivesProvider
+
+
+
+
+
+ Create.
+
+ The Mac provider
+ Digest Algorithm Id
+ Mac Algorithm Id
+
+
+
+ Create a PKMAC builder enforcing a ceiling on the maximum iteration count.
+
+ supporting calculator
+ max allowable value for iteration count.
+
+
+ Set the salt length in octets.
+
+ @param saltLength length in octets of the salt to be generated.
+ @return the generator
+
+
+
+ Set the iteration count.
+
+ the iteration count.
+ this
+ if iteration count is less than 100
+
+
+
+ Set PbmParameters
+
+ The parameters.
+ this
+
+
+
+ The Secure random
+
+ The random.
+ this
+
+
+
+ Build an IMacFactory.
+
+ The password.
+ IMacFactory
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_regToken
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+ a UTF8String.
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+ Converts the given password to a BigInteger mod q.
+
+
+ Converts the given password (UTF8 encoded) to a BigInteger mod q.
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The AEAD ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ This exception is thrown if a buffer that is meant to have output copied into it turns out to be too
+ short, or if we've been given insufficient input.
+
+ In general this exception will get thrown rather than an .
+
+
+
+ ASCON v1.2 Hash, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 Hash with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ ASCON v1.2 XOF, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 XOF with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ Implementation of the cryptographic hash function Blake2b.
+
+ Blake2b offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ Blake2b offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2b is optimized for 64-bit platforms and produces digests of any size
+ between 1 and 64 bytes.
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be a multiple of 8 and less than 256.
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ Implementation of the eXtendable Output Function (XOF) BLAKE2xs.
+
+ BLAKE2xs offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2xs offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2xs is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 2^16-2 bytes. The length can also be unknown and then the maximum
+ length will be 2^32 blocks of 32 bytes.
+
+
+ Magic number to indicate an unknown length of digest
+
+
+ Expected digest length for the xof. It can be unknown.
+
+
+ Root hash that will take the updates
+
+
+ Digest of the root hash
+
+
+ Digest of each round of the XOF
+
+
+ Current position for a round
+
+
+ Overall position of the digest. It is useful when the length is known
+ in advance to get last block length.
+
+
+ Keep track of the round number to detect the end of the digest after
+ 2^32 blocks of 32 bytes.
+
+
+ Current node offset incremented by 1 every round.
+
+
+ BLAKE2xs for hashing with unknown digest length
+
+
+ BLAKE2xs for hashing
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+
+
+ BLAKE2xs with key
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+
+
+ BLAKE2xs with key, salt and personalization
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Return the maximum size in bytes the digest can produce when the length
+ is unknown
+
+ @return byte length of the largest digest with unknown length
+
+
+ Update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt, personal string remain.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+
+
+ Start outputting the results of the final calculation for this digest. Unlike doFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+ @return the number of bytes written
+
+
+ Already outputting error.
+
+
+ Number of Words.
+
+
+ Number of Rounds.
+
+
+ Buffer length.
+
+
+ Chunk length.
+
+
+ ChunkStart Flag.
+
+
+ ChunkEnd Flag.
+
+
+ Parent Flag.
+
+
+ Root Flag.
+
+
+ KeyedHash Flag.
+
+
+ DeriveContext Flag.
+
+
+ DeriveKey Flag.
+
+
+ Chaining0 State Locations.
+
+
+ Chaining1 State Location.
+
+
+ Chaining2 State Location.
+
+
+ Chaining3 State Location.
+
+
+ Chaining4 State Location.
+
+
+ Chaining5 State Location.
+
+
+ Chaining6 State Location.
+
+
+ Chaining7 State Location.
+
+
+ IV0 State Locations.
+
+
+ IV1 State Location.
+
+
+ IV2 State Location.
+
+
+ IV3 State Location.
+
+
+ Count0 State Location.
+
+
+ Count1 State Location.
+
+
+ DataLen State Location.
+
+
+ Flags State Location.
+
+
+ Message word permutations.
+
+
+ Blake3 Initialization Vector.
+
+
+ The byte input/output buffer.
+
+
+ The key.
+
+
+ The chaining value.
+
+
+ The state.
+
+
+ The message Buffer.
+
+
+ The indices.
+
+
+ The chainingStack.
+
+
+ The default digestLength.
+
+
+ Are we outputting?
+
+
+ How many more bytes can we output?
+
+
+ The current mode.
+
+
+ The output mode.
+
+
+ The output dataLen.
+
+
+ The block counter.
+
+
+ The # of bytes in the current block.
+
+
+ The position of the next byte in the buffer.
+
+
+ the default digest size (in bits)
+
+
+ Constructor.
+
+ @param pSource the source digest.
+
+
+ Initialise.
+
+ @param pParams the parameters.
+
+
+ Compress next block of the message.
+
+ @param pMessage the message buffer
+ @param pMsgPos the position within the message buffer
+
+
+ Initialise M from message.
+
+ @param pMessage the source message
+ @param pMsgPos the message position
+
+
+ Adjust the stack.
+
+
+ Compress final block.
+
+ @param pDataLen the data length
+
+
+ Process the stack.
+
+
+ Perform compression.
+
+
+ Perform a round.
+
+
+ Adjust Chaining after compression.
+
+
+ Mix function G.
+
+ @param msgIdx the message index
+ @param posA position A in V
+ @param posB position B in V
+ @param posC position C in V
+ @param posD poistion D in V
+
+
+ initialise the indices.
+
+
+ PermuteIndices.
+
+
+ Initialise null key.
+
+
+ Initialise key.
+
+ @param pKey the keyBytes
+
+
+ Initialise key from context.
+
+
+ Initialise chunk block.
+
+ @param pDataLen the dataLength
+ @param pFinal is this the final chunk?
+
+
+ Initialise parent block.
+
+
+ Initialise output block.
+
+
+ IncrementBlockCount.
+
+
+ ResetBlockCount.
+
+
+ Set root indication.
+
+
+
+ Customizable SHAKE function.
+
+
+
+
+ Base constructor
+
+ bit length of the underlying SHAKE function, 128 or 256.
+ the function name string, note this is reserved for use by NIST. Avoid using it if not required.
+ the customization string - available for local use.
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+
+ ParallelHash - a hash designed to support the efficient hashing of very long strings, by taking advantage,
+ of the parallelism available in modern processors with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+ @param B the blocksize (in bytes) for hashing.
+
+
+ Photon-Beetle, https://www.isical.ac.in/~lightweight/beetle/
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/readonlyist-round/updated-spec-doc/photon-beetle-spec-readonly.pdf
+
+ Photon-Beetle with reference to C Reference Impl from: https://github.com/PHOTON-Beetle/Software
+
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ Sparkle v1.2, based on the current round 3 submission, https://sparkle-lwc.github.io/ .
+
+ Reference C implementation: https://github.com/cryptolu/sparkle.
+ Specification:
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/sparkle-spec-final.pdf .
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ TupleHash - a hash designed to simply hash a tuple of input strings, any or all of which may be empty strings,
+ in an unambiguous way with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto and Rijmen.
+
+
+ Copy constructor. This will copy the state of the provided message digest.
+
+
+ Reset the chaining variables
+
+
+ Elliptic curve registry for various customized curve implementations.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AesWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AESWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ RFC 5794.
+
+ ARIA is a 128-bit block cipher with 128-, 192-, and 256-bit keys.
+
+
+
+ An implementation of the ARIA Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AriaWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AriaWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ ASCON v1.2 AEAD, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 AEAD with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ Constants
+
+
+ Variables to hold the state of the engine during encryption and
+ decryption
+
+
+ Initialize a Grain-128AEAD cipher.
+
+ @param forEncryption Whether or not we are for encryption.
+ @param param The parameters required to set up the cipher.
+ @throws ArgumentException If the params argument is inappropriate.
+
+
+ 320 clocks initialization phase.
+
+
+ Get output from non-linear function g(x).
+
+ @return Output from NFSR.
+
+
+ Get output from linear function f(x).
+
+ @return Output from LFSR.
+
+
+ Get output from output function h(x).
+
+ @return y_t.
+
+
+ Shift array 1 bit and add val to index.Length - 1.
+
+ @param array The array to shift.
+ @param val The value to shift in.
+ @return The shifted array with val added to index.Length - 1.
+
+
+ Set keys, reset cipher.
+
+ @param keyBytes The key.
+ @param ivBytes The IV.
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (barring 1 typo at the
+ end of the MulInv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note: This algorithm was patented in the USA, Japan and Europe. These patents expired in 2011/2012.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.
+
+ The implementation here is based on the document http://eprint.iacr.org/2008/329.pdf
+ by Whitfield Diffie and George Ledin, which is a translation of Prof. LU Shu-wang's original standard.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null
to use the current key.
+ the 2 word (128 bit) tweak, or null
to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Base class for format-preserving encryption.
+
+
+
+ Process length bytes from inBuf, writing the output to outBuf.
+
+ number of bytes output.
+ input data.
+ offset in input data to start at.
+ number of bytes to process.
+ destination buffer.
+ offset to start writing at in destination buffer.
+
+
+
+ Initialize the FPE engine for encryption/decryption.
+
+ number of bytes output.
+ true if initialising for encryption, false otherwise.
+ the key and other parameters to use to set the engine up.
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Converts a character password to bytes incorporating the required trailing zero byte.
+
+ @param password the password to be encoded.
+ @return a byte representation of the password in UTF8 + trailing zero.
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost
. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD1 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, 2y,2b or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$' using version
+ '2y'.
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, may be 2b, 2y or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+
+ Generator for PBE derived keys and IVs as usd by OpenSSL. Originally this scheme was a simple extension of
+ PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1. The default digest was changed to SHA-256 with
+ OpenSSL 1.1.0. This implementation still defaults to MD5, but the digest can now be set.
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest the original MD5.
+
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest as specified.
+
+ the digest to use as the PRF.
+
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15]
with the required bits in r
cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r
(second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15]
with the required bits in r
cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r
portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8)
.
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ int.MaxValue / (128 * r * 8)
.
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for mapping from an alphabet to a set of indexes
+ suitable for use with FPE.
+
+
+
+ Return the number of characters in the alphabet.
+
+ the radix for the alphabet.
+
+
+
+ Return the passed in char[] as a byte array of indexes (indexes
+ can be more than 1 byte)
+
+ an index array.
+ characters to be mapped.
+
+
+
+ Return a char[] for this alphabet based on the indexes passed.
+
+ an array of char corresponding to the index values.
+ input array of indexes.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Return an upper limit for the size of the result.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+
+ Base interface for a ciphers that do not require data to be block aligned.
+
+ Note: In cases where the underlying algorithm is block based, these ciphers may add or remove padding as needed.
+
+
+
+
+
+ Return the size of the output buffer required for a Write() plus a
+ close() with the write() being passed inputLen bytes.
+
+ The returned size may be dependent on the initialisation of this cipher
+ and may not be accurate once subsequent input data is processed as the cipher may
+ add, add or remove padding, as it sees fit.
+
+
+ The space required to accommodate a call to processBytes and doFinal with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Return the size of the output buffer required for a write() with the write() being
+ passed inputLen bytes and just updating the cipher output.
+
+ The space required to accommodate a call to processBytes with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Gets the stream for reading/writing data processed/to be processed.
+
+ The stream associated with this cipher.
+
+
+
+ Base interface for cipher builders.
+
+
+
+
+ Return the algorithm and parameter details associated with any cipher built.
+
+
+
+
+ Return the maximum output size that a given input will produce.
+
+ the length of the expected input.
+ The maximum possible output size that can produced for the expected input length.
+
+
+
+ Build a cipher that operates on the passed in stream.
+
+ The stream to write/read any encrypted/decrypted data.
+ A cipher based around the given stream.
+
+
+
+ A cipher builder that can also return the key it was initialized with.
+
+
+
+
+ Return the key we were initialized with.
+
+
+
+ all parameter classes implement this.
+
+
+
+ Interface describing a provider of cipher builders for creating decrypting ciphers.
+
+
+
+
+ Return a cipher builder for creating decrypting ciphers.
+
+ The algorithm details/parameters to use to create the final cipher.
+ A new cipher builder.
+
+
+ Base interface for general purpose byte derivation functions.
+
+
+ The message digest used as the basis for the function.
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ Base interface for a message digest.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the digest produced by this message digest.
+ the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size, in bytes, of the internal buffer used by this digest.
+ the size, in bytes, of the internal buffer used by this digest.
+
+
+ Update the message digest with a single byte.
+ the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Close the digest, producing the final digest value.
+ This call leaves the digest reset.
+ the byte array the digest is to be copied into.
+ the offset into the byte array the digest is to start at.
+ the number of bytes written
+
+
+ Reset the digest back to its initial state.
+
+
+
+ Base interface for operator factories that create stream-based digest calculators.
+
+
+
+ The algorithm details object for calculators made by this factory.
+
+
+ Return the size of the digest associated with this factory.
+ The length of the digest produced by this calculators from this factory in bytes.
+
+
+
+ Create a stream calculator for the digest associated with this factory. The stream
+ calculator is used for the actual operation of entering the data to be digested
+ and producing the digest block.
+
+ A calculator producing an IBlockResult with the final digest in it.
+
+
+ Interface for classes implementing the Digital Signature Algorithm
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signature generation or signature verification.
+ true if we are generating a signature, false otherwise.
+ key parameters for signature generation.
+
+
+ Sign the passed in message (usually the output of a hash function).
+ the message to be signed.
+ two big integers representing the r and s values respectively.
+
+
+ The order of the group that the r, s values in signatures belong to.
+
+
+ Verify the message message against the signature values r and s.
+ the message that was supposed to have been signed.
+ the r signature value.
+ the s signature value.
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+ the encapsulated secret.
+
+
+
+ The length in bytes of the encapsulation.
+
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+
+ An SecretWithEncapsulation derived from the recipient public key.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+
+ Base interface for a key unwrapper.
+
+
+
+
+ The parameter set used to configure this key unwrapper.
+
+
+
+
+ Unwrap the passed in data.
+
+ The array containing the data to be unwrapped.
+ The offset into cipherText at which the unwrapped data starts.
+ The length of the data to be unwrapped.
+ an IBlockResult containing the unwrapped key data.
+
+
+
+ Base interface for a key wrapper.
+
+
+
+
+ The parameter set used to configure this key wrapper.
+
+
+
+
+ Wrap the passed in key data.
+
+ The key data to be wrapped.
+ an IBlockResult containing the wrapped key data.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+ The key or other data required by the MAC.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the MAC produced by this implementation.
+ the size, in bytes, of the MAC produced by this implementation.
+
+
+ Update the MAC with a single byte.
+ the input byte to be entered.
+
+
+ Update the MAC with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Perform final calculations, producing the result MAC.
+ This call leaves the MAC reset.
+ the byte array the MAC is to be copied into.
+ the offset into the byte array the MAC is to start at.
+ the number of bytes written
+
+
+ Reset the MAC back to its initial state.
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ This exception is thrown whenever we find something we don't expect in a message.
+
+
+
+ Return the secret associated with the encapsulation.
+
+ the secret the encapsulation is for.
+
+
+
+ Return the data that carries the secret in its encapsulated form.
+
+ the encapsulation of the secret.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signing or verification.
+ true if for signing, false otherwise.
+ necessary parameters.
+
+
+ Update the signer with a single byte.
+ the input byte to be entered.
+
+
+ Update the signer with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Generate a signature for the message we've been loaded with using the key we were initialised with.
+
+ A byte array containing the signature for the message.
+
+
+ Return true if the internal state represents the signature described in the passed in array.
+
+ an array containing the candidate signature to verify.
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the signer back to its initial state.
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from , putting the result into .
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the input buffer is too small.
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra methods required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this XOF to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this XOF. Unlike DoFinal, this method
+ will continue producing output until the XOF is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null
to use no parameters.
+
+
+ This exception is thrown whenever a cipher requires a change of key, IV or similar after x amount of
+ bytes enciphered.
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ GCM-SIV Mode.
+ It should be noted that the specified limit of 236 bytes is not supported. This is because all bytes are
+ cached in a ByteArrayOutputStream object (which has a limit of a little less than 231 bytes),
+ and are output on the DoFinal() call (which can only process a maximum of 231 bytes).
+ The practical limit of 231 - 24 bytes is policed, and attempts to breach the limit will be rejected
+ In order to properly support the higher limit, an extended form of ByteArrayOutputStream would be needed
+ which would use multiple arrays to store the data. In addition, a new doOutput method would be required (similar
+ to that in XOF digests), which would allow the data to be output over multiple calls. Alternatively an extended
+ form of ByteArrayInputStream could be used to deliver the data.
+
+
+ The buffer length.
+
+
+ The halfBuffer length.
+
+
+ The nonce length.
+
+
+ The maximum data length (AEAD/PlainText). Due to implementation constraints this is restricted to the maximum
+ array length (https://programming.guide/java/array-maximum-length.html) minus the BUFLEN to allow for the MAC
+
+
+ The top bit mask.
+
+
+ The addition constant.
+
+
+ The initialisation flag.
+
+
+ The aeadComplete flag.
+
+
+ The cipher.
+
+
+ The multiplier.
+
+
+ The gHash buffer.
+
+
+ The reverse buffer.
+
+
+ The aeadHasher.
+
+
+ The dataHasher.
+
+
+ The plainDataStream.
+
+
+ The encryptedDataStream (decryption only).
+
+
+ Are we encrypting?
+
+
+ The initialAEAD.
+
+
+ The nonce.
+
+
+ The flags.
+
+
+ Constructor.
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+ @param pMultiplier the multiplier
+
+
+ check AEAD status.
+ @param pLen the aeadLength
+
+
+ check status.
+ @param pLen the dataLength
+
+
+ Reset Streams.
+
+
+ Obtain buffer length (allowing for null).
+ @param pBuffer the buffere
+ @return the length
+
+
+ calculate tag.
+ @return the calculated tag
+
+
+ complete polyVAL.
+ @return the calculated value
+
+
+ process lengths.
+
+
+ perform the next GHASH step.
+ @param pNext the next value
+
+
+ xor a full block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+
+
+ xor a partial block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+ @param pOffset the offset in the right operand
+ @param pLength the length of data in the right operand
+
+
+ increment the counter.
+ @param pCounter the counter to increment
+
+
+ multiply by X.
+ @param pValue the value to adjust
+
+
+ Derive Keys.
+ @param pKey the keyGeneration key
+
+
+ Hash Control.
+
+
+ Cache.
+
+
+ Single byte cache.
+
+
+ Count of active bytes in cache.
+
+
+ Count of hashed bytes.
+
+
+ Obtain the count of bytes hashed.
+ @return the count
+
+
+ Reset the hasher.
+
+
+ update hash.
+ @param pByte the byte
+
+
+ update hash.
+ @param pBuffer the buffer
+ @param pOffset the offset within the buffer
+ @param pLen the length of data
+
+
+ complete hash.
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ An IAeadCipher based on an IBlockCipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ The block cipher underlying this algorithm.
+
+
+
+ A cipher mode that includes authenticated encryption with a streaming mode and optional
+ associated data.
+
+
+ Implementations of this interface may operate in a packet mode (where all input data is
+ buffered and processed during the call to DoFinal, or in a streaming mode (where output
+ data is incrementally produced with each call to ProcessByte or ProcessBytes. This is
+ important to consider during decryption: in a streaming mode, unauthenticated plaintext
+ data may be output prior to the call to DoFinal that results in an authentication failure.
+ The higher level protocol utilising this cipher must ensure the plaintext data is handled
+ appropriately until the end of data is reached and the entire ciphertext is authenticated.
+
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+ Return the
underlying this cipher mode.
+
+
+ Indicates whether this cipher mode can handle partial blocks.
+
+
+
+ Reset the cipher mode to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm.
+
+ For those still concerned about the original patents around this, please see:
+ https://mailarchive.ietf.org/arch/msg/cfrg/qLTveWOdTJcLn4HP3ev-vrj05Vg/
+ Text reproduced below:
+
+ Phillip Rogaway<rogaway@cs.ucdavis.edu> Sat, 27 February 2021 02:46 UTC
+
+ I can confirm that I have abandoned all OCB patents and placed into the public domain all OCB-related IP of
+ mine. While I have been telling people this for quite some time, I don't think I ever made a proper announcement
+ to the CFRG or on the OCB webpage. Consider that done.
+
+
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface.
+
+
+ Initialise the padder.
+ A source of randomness, if any required.
+
+
+ The name of the algorithm this padder implements.
+
+
+ Add padding to the passed in block.
+ the block to add padding to.
+ the offset into the block the padding is to start at.
+ the number of bytes of padding added.
+
+
+ Determine the length of padding present in the passed in block.
+ the block to check padding for.
+ the number of bytes of padding present.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+
+ A padder that adds the padding according to the scheme referenced in ISO 7814-4 - scheme 2 from ISO 9797-1.
+ The first byte is 0x80, rest is 0x00
+
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds PKCS7/PKCS5 padding to a block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+ This padding pads the block out compliment of the last bit of the plain text.
+
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is passed in random padding is assumed,
+ otherwise padding with zeros is used.
+
+
+
+ A padder that adds zero byte padding to a block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Blake3 Parameters.
+
+
+ Create a key parameter.
+ the context
+ the parameter
+
+
+ Create a key parameter.
+ the key
+ the parameter
+
+
+ Obtain the key.
+ the key
+
+
+ Clear the key bytes.
+
+
+ Obtain the salt.
+ the salt
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+
+ Base constructor - suffix fixed input data only.
+
+ the KDF seed
+ fixed input data to follow counter.
+ length of the counter in bits
+
+
+
+ Base constructor - prefix and suffix fixed input data.
+
+ the KDF seed
+ fixed input data to precede counter
+ fixed input data to follow counter.
+ length of the counter in bits.
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null
if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null
if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null
if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher
, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null
to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null
to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Supports use of additional input.
+
+ RFC 6979 3.6. Additional data may be added to the input of HMAC [..]. A use case may be a protocol that
+ requires a non-deterministic signature algorithm on a system that does not have access to a high-quality
+ random source. It suffices that the additional data[..] is non-repeating(e.g., a signature counter or a
+ monotonic clock) to ensure "random-looking" signatures are indistinguishable, in a cryptographic way, from
+ plain (EC)DSA signatures.
+
+ By default there is no additional input. Override this method to supply additional input, bearing in mind
+ that this calculator may be used for many signatures.
+
+ The to which the additional input should be added.
+
+
+
+ An interface for different encoding formats for DSA signatures.
+
+
+
+ Decode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ An encoding of the (r, s) pair of a DSA signature.
+ The (r, s) of a DSA signature, stored in an array of exactly two elements, r followed by s.
+
+
+ Encode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ The r value of a DSA signature.
+ The s value of a DSA signature.
+ An encoding of the DSA signature given by the provided (r, s) pair.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+
+ A simple block result object which just carries a byte array.
+
+
+
+
+ Base constructor - a wrapper for the passed in byte array.
+
+ The byte array to be wrapped.
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+ Create an AlgorithmIdentifier for the passed in encryption algorithm.
+
+ @param encryptionOID OID for the encryption algorithm
+ @param keySize key size in bits (-1 if unknown)
+ @param random SecureRandom to use for parameter generation.
+ @return a full AlgorithmIdentifier including parameters
+ @throws IllegalArgumentException if encryptionOID cannot be matched
+
+
+ A basic alphabet mapper that just creates a mapper based on the
+ passed in array of characters.
+
+
+ Base constructor.
+
+ @param alphabet a string of characters making up the alphabet.
+
+
+ Base constructor.
+
+ @param alphabet an array of characters making up the alphabet.
+
+
+ Create a key generator for the passed in Object Identifier.
+
+ @param algorithm the Object Identifier indicating the algorithn the generator is for.
+ @param random a source of random to initialise the generator with.
+ @return an initialised CipherKeyGenerator.
+ @throws IllegalArgumentException if the algorithm cannot be identified.
+
+
+ Magic value for proprietary OpenSSH private key.
+ C string so null terminated.
+
+
+ Encode a cipher parameters into an OpenSSH private key.
+ This does not add headers like ----BEGIN RSA PRIVATE KEY----
+
+ @param parameters the cipher parameters.
+ @return a byte array
+
+
+ Parse a private key.
+
+ This method accepts the body of the OpenSSH private key.
+ The easiest way to extract the body is to use PemReader, for example:
+
+ byte[] blob = new PemReader([reader]).readPemObject().getContent();
+ CipherParameters params = parsePrivateKeyBlob(blob);
+
+ @param blob The key.
+ @return A cipher parameters instance.
+
+
+ allIntegers returns true if the sequence holds only DerInteger types.
+
+
+
+ Parse a public key.
+
+ This method accepts the bytes that are Base64 encoded in an OpenSSH public key file.
+
+ @param encoded The key.
+ @return An AsymmetricKeyParameter instance.
+
+
+ Encode a public key from an AsymmetricKeyParameter instance.
+
+ @param cipherParameters The key to encode.
+ @return the key OpenSSH encoded.
+ @throws IOException
+
+
+ Parse a public key from an SSHBuffer instance.
+
+ @param buffer containing the SSH public key.
+ @return A CipherParameters instance.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Use KeyTransRecipientInfoGenerator
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal
is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale
of the SimpleBigDecimal
.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimal
s
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimal
s returns a
+ SimpleBigDecimal
with double scale.
+
+
+ Returns a SimpleBigDecimal
representing the same numerical
+ value as value
.
+ @param value The value of the SimpleBigDecimal
to be
+ created.
+ @param scale The scale of the SimpleBigDecimal
to be
+ created.
+ @return The such created SimpleBigDecimal
.
+
+
+ Constructor for SimpleBigDecimal
. The value of the
+ constructed SimpleBigDecimal
Equals bigInt /
+ 2scale
.
+ @param bigInt The bigInt
value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal
.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu
's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ The αu
's for a=0
as an array
+ of ZTauElement
s.
+
+
+ The αu
's for a=0
as an array
+ of TNAFs.
+
+
+ The αu
's for a=1
as an array
+ of ZTauElement
s.
+
+
+ The αu
's for a=1
as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ
of
+ Z[τ]
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return The norm of λ
.
+
+
+ Computes the norm of an element λ
of
+ R[τ]
, where λ = u + vτ
+ and u
and u
are real numbers (elements of
+ R
).
+ @param mu The parameter μ
of the elliptic curve.
+ @param u The real part of the element λ
of
+ R[τ]
.
+ @param v The τ
-adic part of the element
+ λ
of R[τ]
.
+ @return The norm of λ
.
+
+
+ Rounds an element λ
of R[τ]
+ to an element of Z[τ]
, such that their difference
+ has minimal norm. λ
is given as
+ λ = λ0 + λ1τ
.
+ @param lambda0 The component λ0
.
+ @param lambda1 The component λ1
.
+ @param mu The parameter μ
of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ]
.
+ @throws ArgumentException if lambda0
and
+ lambda1
do not have same scale.
+
+
+ Approximate division by n
. For an integer
+ k
, the value λ = s k / n
is
+ computed to c
bits of accuracy.
+ @param k The parameter k
.
+ @param s The curve parameter s0
or
+ s1
.
+ @param vm The Lucas Sequence element Vm
.
+ @param a The parameter a
of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm
.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal
.
+ @return The value λ = s k / n
computed to
+ c
bits of accuracy.
+
+
+ Computes the τ
-adic NAF (non-adjacent form) of an
+ element λ
of Z[τ]
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return The τ
-adic NAF of λ
.
+
+
+ Applies the operation τ()
to an
+ AbstractF2mPoint
.
+ @param p The AbstractF2mPoint to which τ()
is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ
of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ
.
+ The curve must be a Koblitz curve, i.e. a
Equals
+ 0
or 1
and b
Equals
+ 1
.
+ @return μ
of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1
and
+ Uk
or Vk-1
and
+ Vk
.
+ @param mu The parameter μ
of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1
and
+ Vk
, otherwise Uk-1
and
+ Uk
.
+ @return An array with 2 elements, containing Uk-1
+ and Uk
or Vk-1
+ and Vk
.
+
+
+ Computes the auxiliary value tw
. If the width is
+ 4, then for mu = 1
, tw = 6
and for
+ mu = -1
, tw = 10
+ @param mu The parameter μ
of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0
and
+ s1
used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0
and s1
.
+ @throws ArgumentException if curve
is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1)
.
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a
of the elliptic curve.
+ @param s The auxiliary values s0
and
+ s1
.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger
using the reduced τ
-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger
by which to Multiply p
.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the τ
-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ
of
+ Z[τ]
.
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the τ
-adic NAF (TNAF) method, given the TNAF
+ of λ
.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ
..
+ @return λ * p
+
+
+ Computes the [τ]
-adic window NAF of an element
+ λ
of Z[τ]
.
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ
of
+ Z[τ]
of which to compute the
+ [τ]
-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw
.
+ @param alpha The αu
's for the window width.
+ @return The [τ]
-adic window NAF of
+ λ
.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint
for which to do the precomputation.
+ @param a The parameter a
of the elliptic curve.
+ @return The precomputation array for p
.
+
+
+ Class representing an element of Z[τ]
. Let
+ λ
be an element of Z[τ]
. Then
+ λ
is given as λ = u + vτ
. The
+ components u
and v
may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ
.
+
+
+ The "τ
-adic" part of λ
.
+
+
+ Constructor for an element λ
of
+ Z[τ]
.
+ @param u The "real" part of λ
.
+ @param v The "τ
-adic" part of
+ λ
.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly
+ faster) implementations, and for very small scalars. CAUTION: This implementation is NOT
+ constant-time in any way. It is only intended to be used for diagnostics.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP
.
+
+
+ Base class for an elliptic curve.
+
+
+ Compute a PreCompInfo
for a point on this curve, under a given name. Used by
+ ECMultiplier
s to save the precomputation for this ECPoint
for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint
to store precomputations for.
+ @param name
+ A String
used to index precomputations of different types.
+ @param callback
+ Called to calculate the PreCompInfo
.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Create a cache-safe lookup table for the specified sequence of points. All the points MUST
+ belong to this ECCurve
instance, and MUST already be normalized.
+
+
+ Sets the default ECMultiplier
, unless already set.
+
+ We avoid locking for performance reasons, so there is no uniqueness guarantee.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp
(X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ Solves a quadratic equation z2 + z = beta
(X9.62
+ D.1.6) The other solution is z + 1
.
+
+ @param beta
+ The value to solve the quadratic equation for.
+ @return the solution for z2 + z = beta
or
+ null
if no solution exists.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b
.
+
+
+ The exponent m
of F2m
.
+
+
+ TPB: The integer k
where xm +
+ xk + 1
represents the reduction polynomial
+ f(z)
.
+ PPB: The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ TPB: Always set to 0
+ PPB: The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ TPB: Always set to 0
+ PPB: The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k The integer k
where xm +
+ xk + 1
represents the reduction
+ polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k The integer k
where xm +
+ xk + 1
represents the reduction
+ polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n
.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m
of
+ F2m
.
+ @param k1 The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k2 The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param k3 The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+ @param a The coefficient a
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param b The coefficient b
in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m
.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n
.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m
in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m
of F2m
.
+
+
+ The LongArray
holding the bits.
+
+
+ Checks, if the ECFieldElements a
and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a
and b
+ are not elements of the same field
+ F2m
(having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m
, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m
of the reduction polynomial
+ f(z)
.
+
+
+ @return Tpb: The integer k
where xm +
+ xk + 1
represents the reduction polynomial
+ f(z)
.
+ Ppb: The integer k1
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3
where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)
.
+
+
+ base class for points on elliptic curves.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint
by the given number.
+ @param k The multiplicator.
+ @return k * this
.
+
+
+ Elliptic curve points over Fp
+
+
+ Elliptic curve points over F2m
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoint
s.
+
+
+ Multiplies the ECPoint p
by k
, i.e.
+ p
is added k
times to itself.
+ @param p The ECPoint
to be multiplied.
+ @param k The factor by which p
is multiplied.
+ @return p
multiplied by k
.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Lookup table for the precomputed ECPoint
s used for a fixed point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier
.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this
by an integer k
using the
+ Window NAF method.
+ @param k The integer by which this
is multiplied.
+ @return A new ECPoint
which equals this
+ multiplied by k
.
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoint
s used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoint
s used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint
representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w
of the Window NAF. The width is
+ defined as the minimal number w
, such that for any
+ w
consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+
, where the ki
denote the elements of the
+ returned byte[]
.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ
-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k
using the reduced τ
-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k
.
+ @return p
multiplied by k
.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
using
+ the τ
-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ
of
+ Z[τ]
of which to compute the
+ [τ]
-adic NAF.
+ @return p
multiplied by λ
.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ
of Z[τ]
+ using the window τ
-adic NAF (TNAF) method, given the
+ WTNAF of λ
.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ
..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ
-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoint
s used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}
.
+
+
+
+ A low-level implementation of the Ed25519, Ed25519ctx, and Ed25519ph instantiations of the Edwards-Curve Digital
+ Signature Algorithm specified in RFC 8032.
+
+
+ The implementation strategy is mostly drawn from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography", notably the "signed multi-comb" algorithm (for
+ scalar multiplication by a fixed point), the "half Niels coordinates" (for precomputed points), and the
+ "extensible coordinates" (for accumulators). Standard
+ extended coordinates are used during
+ precomputations, needing only a single extra point addition formula.
+
+
+
+
+ A low-level implementation of the Ed448 and Ed448ph instantiations of the Edwards-Curve Digital Signature
+ Algorithm specified in RFC 8032.
+
+
+ The implementation uses the "signed mult-comb" algorithm (for scalar multiplication by a fixed point) from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography". Standard
+ projective coordinates are used
+ for most point arithmetic.
+
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+
+ Enhanced Miller-Rabin Probabilistic Primality Test
+
+
+ Used to return the output from the
+ Shawe-Taylor Random_Prime Routine
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine.
+ Construct a provable prime number using a hash function.
+ The instance to use (as "Hash()"). Cannot be null.
+ The length (in bits) of the prime to be generated. Must be at least 2.
+ The seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ An instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test.
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an alternative to
+ that provides more information about a
+ composite candidate, which may be useful when generating or validating RSA moduli.
+
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+ An instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+ The instance to test for division by small factors.
+ true if the candidate is found to have any small factors, false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test.
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+
+ false if any witness to compositeness is found amongst the chosen bases (so
+ is definitely NOT prime), or else true (indicating primality with some
+ probability dependent on the number of iterations that were performed).
+
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+ The instance to test for primality.
+ The base value to use for this iteration.
+ false if is a witness to compositeness (so
+ is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ Wrapper for the RevokedInfo object
+
+
+ Return the revocation reason, if there is one.
+ This field is optional; test for it with first.
+ The revocation reason, if available.
+ If no revocation reason is available.
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WARNING: If is null, no integrity check is performed.
+
+
+
+ Load without any integrity check.
+
+
+
+
+
+
+ JksTrustedCertEntry is a internal container for the certificate entry.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ Returns X509Extensions if the Extensions Request attribute can be found and returns the extensions block.
+
+ X509Extensions block or null if one cannot be found.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ A holding class for a PKCS#8 encrypted private key info object that allows for its decryption.
+
+
+
+
+ Base constructor from a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A PKCS#8 EncryptedPrivateKeyInfo object.
+
+
+
+ Base constructor from a BER encoding of a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A BER encoding of a PKCS#8 EncryptedPrivateKeyInfo objects.
+
+
+
+ Returns the underlying ASN.1 structure inside this object.
+
+ Return the EncryptedPrivateKeyInfo structure in this object.
+
+
+
+ Returns a copy of the encrypted data in this structure.
+
+ Return a copy of the encrypted data in this object.
+
+
+
+ Return a binary ASN.1 encoding of the EncryptedPrivateKeyInfo structure in this object.
+
+ A byte array containing the encoded object.
+
+
+
+ Get a decryptor from the passed in provider and decrypt the encrypted private key info, returning the result.
+
+ A provider to query for decryptors for the object.
+ The decrypted private key info structure.
+
+
+
+ Create the encrypted private key info using the passed in encryptor.
+
+ The encryptor to use.
+ An encrypted private key info containing the original private key info.
+
+
+ Base exception for PKCS related issues.
+
+
+ Base exception for parsing related issues in the PKCS namespace.
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+
+ @param privateKey the key to be encoded into the info object.
+ @param attributes the set of attributes to be included.
+ @return the appropriate PrivateKeyInfo
+ @throws java.io.IOException on an error encoding the key
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set
of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker
supports or
+ null
if no extensions are supported.
+
+ Each element of the set is a String
representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker
might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set
of X.509 extension OIDs (in
+ String
format) supported by this
+ PkixAttrCertChecker
, or null
if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection
of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params
must be an instance of
+ ExtendedPkixParameters
.
+
+ The target constraints in the params
must be an
+ X509AttrCertStoreSelector
with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult
of the result of
+ validating the certPath
.
+ @throws InvalidAlgorithmParameterException if params
is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters
.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters
, PKIXParameters
,
+ and ExtendedPKIXParameters
instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters
instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet
is null
an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters
and
+ PKIXBuilderParameters
.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters
object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters
object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ * Initializes the internal state of this PKIXCertPathChecker
.
+ *
+ * The forward
flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker
must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check
method. If true
,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false
, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker
is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker
to perform its
+ checks when certificates are presented to the check
method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true
if forward checking is supported,
+ false
otherwise
+
+
+ * Returns an immutable Set
of X.509 certificate extensions
+ * that this PKIXCertPathChecker
supports (i.e. recognizes,
+ * is able to process), or null
if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String
representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set
of X.509 extension OIDs (in
+ * String
format) supported by this
+ * PKIXCertPathChecker
, or null
if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init
method.
+
+ @param cert
+ the Certificate
to be checked
+ @param unresolvedCritExts
+ a Collection
of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator
implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi
)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator
class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi
instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator
object.
+
+ However, implementations of CertPathValidatorSpi
may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi
instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException
provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException
may also include the index of
+ the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #Index Index} property to retrieve
+ this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException
with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null
if none)
+ the cause (or null
if none)
+ the index of the certificate in the certification path that *
+
+
+ eturns the index of the certificate in the certification path that caused the exception to be
+ thrown.
+
+ Note that the list of certificates in a is zero based. If no index has been set,
+ -1 is returned.
+
+ The index that has been set, or -1 if none has been set.
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor
object if found or
+ null
if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal
.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey
. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index
extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector
.
+
+ The issuerPrincipals
are a collection with a single
+ X500Principal
for X509Certificate
s. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal
.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals
does not
+ contain only X500Principal
s.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate
or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set
of X509CRL
s with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set
of X509CRL
s with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection
object containing the issuer
+ X509Certificate
s. Never null
.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null
.
+
+
+
+ The most restricting part from email1
and
+ email2
is added to the intersection intersect
.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ The common part of email1
and email2
is
+ added to the union union
. If email1
and
+ email2
have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ Checks if the IP ip
is included in the excluded ISet
+ excluded
.
+
+ @param excluded A Set
of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP ip
is included in the permitted ISet
+ permitted
.
+
+ @param permitted A Set
of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP address ip
is constrained by
+ constraint
.
+
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @param ip The IP address.
+ @return true
if constrained, false
+ otherwise.
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted
with ip
.
+
+ @param permitted A Set
of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set
of permitted IP ranges intersected with
+ ip
.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set
with the single IP address with its subnet
+ mask as a byte array or an empty Set
.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip
.
+
+ @param excluded A Set
of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set
of excluded IP ranges unified with
+ ip
as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set
with the union of both addresses.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1
with ip2
. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1
and
+ ip2
.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1
and ip2
.
+
+
+
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+
+
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name
is
+ excluded.
+
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector
. If null
, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector
returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector
specifying the constraints on the
+ target certificate or attribute certificate (or null
)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector
. If null
, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector
specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector
specifying the constraints on
+ the target certificate or attribute certificate (or
+ null
)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null
, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null
)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null
)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set
, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set
of initial policy OIDs in String
+ format, or an empty Set
(implying any policy is
+ acceptable). Never returns null
.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set
of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set
(or
+ null
).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null
)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List
of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker
specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker
should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator
or CertPathBuilder
. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator
or CertPathBuilder
for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator
or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null
)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker
to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker
is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker
to add to the list of
+ checks. If null
, the checker is ignored (not added to list).
+
+
+ Method to support Clone()
under J2ME.
+ super.Clone()
does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters
they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false
.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true
if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true
if additional stores are used.
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet
consists of TrustAnchor
s.
+
+ The returned ISet
is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers
must be a ISet
of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null
.
+ @throws ClassCastException if an element of stores
is not
+ a TrustAnchor
.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet
is immutable and contains
+ String
s with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet
must contain String
s with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes
is not a
+ String
.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet
is immutable and contains
+ String
s with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null
.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet
must contain String
s with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes
is not a
+ String
.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null
.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet
must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null
.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker
.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true
if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+
+
+
+
+
+
+
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert
.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert
.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert
.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert
.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set
with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert
.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert
.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert
.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert
.
+ @param workingPublicKey The public key of the issuer certificate sign
.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert
.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert
.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor
where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor
.
+
+ a formatted string describing the TrustAnchor
+
+
+ Generate key pairs
+ - Secret key : (h0, h1, sigma)
+ - Public key: h
+ * @param h0 h0
+ * @param h1 h1
+ * @param sigma sigma
+ * @param h h
+ * @param random Secure Random
+ *
+
+
+ KEM Encapsulation
+ - Input: h
+ - Output: (c0,c1,k)
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ * @param h public key
+ * @param random Secure Random
+ *
+
+
+ KEM Decapsulation
+ - Input: (h0, h1, sigma), (c0, c1)
+ - Output: k
+ * @param h0 private key
+ * @param h1 private key
+ * @param sigma private key
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ *
+
+
+ Constructor.
+
+ @param h0 h0
+ @param h1 h1
+ @param sigma random bytes sigma
+
+
+ Constructor.
+
+ @param publicKey byte
+
+
+ Karatsuba multiplication of a and b, Implementation inspired from the NTL library.
+
+ \param[out] o Polynomial
+ \param[in] a Polynomial
+ \param[in] b Polynomial
+ \param[in] size Length of polynomial
+ \param[in] stack Length of polynomial
+
+
+ @brief Compute o(x) = a(x) mod \f$ X^n - 1\f$
+
+ This function computes the modular reduction of the polynomial a(x)
+
+ @param[in] a Pointer to the polynomial a(x)
+ @param[out] o Pointer to the result
+
+
+ Generate key pairs
+ - Secret key : (x,y)
+ - Public key: (h,s)
+ @param pk output pk = (publicSeed||s)
+
+
+
+
+ HQC Encapsulation
+ - Input: pk, seed
+ - Output: c = (u,v,d), K
+
+ @param u u
+ @param v v
+ @param d d
+ @param K session key
+ @param pk public key
+ @param seed seed
+
+
+
+ HQC Decapsulation
+ - Input: ct, sk
+ - Output: ss
+
+ @param ss session key
+ @param ct ciphertext
+ @param sk secret key
+
+
+
+ HQC Encryption
+ - Input: (h,s, m)
+ - Output: (u,v) = c
+
+ @param h public key
+ @param s public key
+ @param m message
+ @param u ciphertext
+ @param v ciphertext
+
+
+
+ Base interface for a PQC signing algorithm.
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return the signature of the message
+
+
+ verify the message message against the signature value.
+
+ @param message the message that was supposed to have been signed.
+ @param signature the signature of the message
+
+
+ Type to assist in build LMS messages.
+
+
+ Increments an HSS private key without doing any work on it.
+ HSS private keys are automatically incremented when when used to create signatures.
+
+ The HSS private key is ranged tested before this incrementation is applied.
+ LMS keys will be replaced as required.
+
+ @param keyPair
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters array of LMS parameters, one per level in the hierarchy (up to 8 levels).
+ @param random the random byte source.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+ Reset to index will ensure that all LMS keys are correct for a given HSS index value.
+ Normally LMS keys updated in sync with their parent HSS key but in cases of sharding
+ the normal monotonic updating does not apply and the state of the LMS keys needs to be
+ reset to match the current HSS index.
+
+
+ @param src byte[], InputStream or HSSSignature
+ @param L The HSS depth, available from public key.
+ @return An HSSSignature instance.
+ @throws IOException
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters LMS parameter set to use.
+ @param random the random byte source.
+
+
+ Return the key index (the q value).
+
+ @return private key index number.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+
+ Encapsulated secret encapsulated by NTRU.
+
+
+
+
+ NTRU secret encapsulation extractor.
+
+
+
+
+ Encapsulate a secret using NTRU. Returns an as encapsulation.
+
+
+
+ NTRU website
+
+
+
+ NTRU sampling.
+
+ NTRU specification section 1.10
+
+
+
+
+ Sample_fg
+
+ random byte array
+ a pair of polynomial f and g
+
+
+
+
+ Sample_rm
+
+ random byte array
+ a pair of polynomial r and m
+
+
+
+
+ Ternary
+
+ random byte array
+ A ternary polynomial
+
+
+
+ Fixed_Type
+
+ random byte array
+ a ternary polynomial with exactly q/16 − 1 coefficients equal to 1 and q/16 − 1 coefficient equal to −1
+
+
+
+ Ternary_Plus
+
+ random byte array
+ a ternary polynomial that satisfies the non-negative correlation property
+
+
+
+ An OW-CPA secure deterministic public key encryption scheme (DPKE).
+
+
+
+
+ Generate a DPKE key pair.
+
+ a random byte array
+ DPKE key pair
+
+
+
+ DPKE encryption.
+
+
+
+
+ DPKE ciphertext
+
+
+
+ DPKE decryption.
+
+
+
+ an instance of containing packed_rm an fail flag
+
+
+ Largest serialized public key size, in bytes
+
+
+ Largest signature size, in bytes
+
+
+ parameters
+
+
+
+
+
+ Compressed Dlogs
+
+
+ DLOG
+
+
+
+
+
+ Interprets m as SPX_FORS_HEIGHT-bit unsigned integers.
+ Assumes m contains at least SPX_FORS_HEIGHT * SPX_FORS_TREES bits.
+ Assumes indices has space for SPX_FORS_TREES integers.
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Return the SPHINCS+ parameters that map to the passed in parameter ID.
+
+ @param id the oid of interest.
+ @return the parameter set.
+
+
+ Return the OID that maps to the passed in SPHINCS+ parameters.
+
+ @param params the parameters of interest.
+ @return the OID for the parameter set.
+
+
+ SPHINCS+ signer.
+
+ This version is based on the 3rd submission with deference to the updated reference
+ implementation on github as at November 9th 2021. This version includes the changes
+ for the countermeasure for the long-message second preimage attack - see
+ "https://github.com/sphincs/sphincsplus/commit/61cd2695c6f984b4f4d6ed675378ed9a486cbede"
+ for further details.
+
+
+
+ Base constructor.
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding.
+ the PrivateKeyInfo encoding
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding read from a stream
+ the stream to read the PrivateKeyInfo encoding from
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from the passed in PKCS8 PrivateKeyInfo object.
+ the PrivateKeyInfo object containing the key material
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key.
+ the key to be encoded into the info object.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+ the key to be encoded into the info object.
+ the set of attributes to be included.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding
+ the SubjectPublicKeyInfo encoding
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding read from a stream
+ the stream to read the SubjectPublicKeyInfo encoding from
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ default parameters that might be needed.
+ the appropriate key parameter
+ on an error decoding the key
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+ Base class for a TLS client.
+
+
+
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ The default implementation calls this to get the connection_id extension
+ the client will send. As future communication doesn't include the connection IDs length, this should either
+ be fixed-length or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+
+
+
+
+
+
+ an of (or null).
+
+
+ The default implementation calls this to determine which named
+ groups to include in the supported_groups extension for the ClientHello.
+ The named group roles for which there should
+ be at least one supported group. By default this is inferred from the offered cipher suites and signature
+ algorithms.
+ an of . See for group constants.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for supporting a TLS key exchange implementation.
+
+
+ Base class for supporting a TLS key exchange factory implementation.
+
+
+ Base class for a TLS client or server.
+
+
+ Get the values that are supported by this peer.
+
+ WARNING: Mixing DTLS and TLS versions in the returned array is currently NOT supported. Use a separate
+ (sub-)class for each case.
+
+ an array of supported values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for a TLS server.
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ This method will be called if a connection_id extension was sent by the client.
+ If the return value is non-null, the server will send this connection ID to the client to use in future packets.
+ As future communication doesn't include the connection IDs length, this should either be fixed-length
+ or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+ RFC 5246 7.2.
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection.
+
+ Note that as of TLS 1.1, failure to properly close a connection no longer requires that a session not be
+ resumed. This is a change from TLS 1.0 ("The session becomes unresumable if any connection is terminated
+ without proper close_notify messages with level equal to warning.") to conform with widespread
+ implementation practice.
+
+
+
+ An inappropriate message was received.
+
+ This alert is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ This alert is returned if a record is received with an incorrect MAC.
+
+ This alert also MUST be returned if an alert is sent because a TLSCiphertext decrypted in an invalid way:
+ either it wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks against the CBC
+ mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes.
+
+ This message is always fatal and should never be observed in communication between proper implementations
+ (except when messages were corrupted in the network).
+
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length).
+
+ This message is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to negotiate
+ an acceptable set of security parameters given the options available.
+
+ This is a fatal error.
+
+
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it unacceptable.
+
+
+
+ A field in the handshake was out of range or inconsistent with other fields.
+
+ This message is always fatal.
+
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted CA.
+
+ This message is always fatal.
+
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not to
+ proceed with negotiation.
+
+ This message is always fatal.
+
+
+
+ A message could not be decoded because some field was out of the specified range or the length of
+ the message was incorrect.
+
+ This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a signature
+ or validate a Finished message.
+
+ This message is always fatal.
+
+
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+
+
+ (For example, old protocol versions might be avoided for security reasons.) This message is always fatal.
+
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client.
+
+ This message is always fatal.
+
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue.
+
+ This message is always fatal.
+
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure.
+
+ If the user cancels an operation after the handshake is complete, just closing the connection by sending a
+ close_notify is more appropriate. This alert should be followed by a close_notify. This message is
+ generally a warning.
+
+
+
+ Sent by the client in response to a hello request or by the server in response to a client hello
+ after initial handshaking.
+
+ Either of these would normally lead to renegotiation; when that is not appropriate, the recipient should
+ respond with this alert. At that point, the original requester can decide whether to proceed with the
+ connection. One case where this would be appropriate is where a server has spawned a process to satisfy a
+ request; the process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This message is always a
+ warning.
+
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did not
+ put in the corresponding client hello.
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL supplied
+ by the client(see Section 3.3).
+
+ This message MAY be fatal - for example if client authentication is required by the server for the
+ handshake to continue and the server is unable to retrieve the certificate chain, it may send a fatal
+ alert.
+
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not recognize
+ the server name.
+
+ This message MAY be fatal.
+
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see Section 3.6
+ ).
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash.
+
+ This message is always fatal.
+
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an "unknown_psk_identity"
+ alert message.
+
+
+ In the event that the server supports no protocols that the client advertises, then the server
+ SHALL respond with a fatal "no_application_protocol" alert.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version, the server MUST
+ respond with a fatal inappropriate_fallback alert[..].
+
+
+ Sent by endpoints that receive a handshake message not containing an extension that is mandatory
+ to send for the offered TLS version or other negotiated parameters.
+
+
+ Sent by servers when a client certificate is desired but none was provided by the client.
+
+
+
+ RFC 5246 7.2
+
+
+ A basic PSK Identity holder.
+
+
+ A basic SRP Identity holder.
+
+
+ A queue for bytes. This file could be more optimized.
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided .
+ The to copy the bytes to.
+ How many bytes to copy.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a over some bytes at the beginning of the data.
+
+ How many bytes will be readable.
+ A over the data.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Remove data from the buffer.
+ The buffer where the removed data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ OutputStream based on a ByteQueue implementation.
+
+
+ Implementation of the RFC 3546 3.3. CertChainType.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+
+
+ an array of representing a certificate chain.
+
+
+ true if this certificate chain contains no certificates, or false otherwise.
+
+
+
+ Encode this to a , and optionally calculate the
+ "end point hash" (per RFC 5929's tls-server-end-point binding).
+ the of the current connection.
+ the to encode to.
+ the to write the "end point hash" to (or null).
+
+
+
+
+ Parse a from a .
+ the to apply during parsing.
+ the of the current connection.
+ the to parse from.
+ the to write the "end point hash" to (or null).
+
+ a object.
+
+
+
+ RFC 8879
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>;
+ } CertificateRequest;
+
+ Updated for RFC 5246:
+
+ struct {
+ ClientCertificateType certificate_types <1..2 ^ 8 - 1>;
+ SignatureAndHashAlgorithm supported_signature_algorithms <2 ^ 16 - 1>;
+ DistinguishedName certificate_authorities <0..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+ Revised for RFC 8446:
+
+ struct {
+ opaque certificate_request_context <0..2 ^ 8 - 1>;
+ Extension extensions <2..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+
+
+
+
+
+
+
+
+ see for valid constants.
+
+ an of .
+
+
+
+
+
+ an array of certificate types
+
+
+
+ an of (or null before TLS 1.2).
+
+
+
+ an optional of . May be non-null from
+ TLS 1.3 onwards.
+
+
+ an of .
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ an of (possibly null) .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ Implementation of the RFC 3546 3.6. CertificateStatusRequest.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Implementation of the RFC 6961 2.2. CertificateStatusRequestItemV2.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6091
+
+
+ RFC 3546 3.3
+
+
+ see for valid constants.
+ an of .
+
+
+
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ a value.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 5056
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g.serialization).
+
+
+
+ RFC 2246 A.5
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ for DTLS this should be non-null; the input is copied to this
+ , minus the cookie field.
+ a object.
+
+
+
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ RFC 2246 6.1
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values(e.g.serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+ Carrier class for Diffie-Hellman group parameters.
+
+
+ Base constructor with the prime factor of (p - 1).
+ the prime modulus.
+ specifies the prime factor of (p - 1).
+ the base generator.
+
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ Base class for a TlsCrypto implementation that provides some needed methods from elsewhere in the impl
+ package.
+
+
+ Base class for a TlsSecret implementation which captures common code and fields.
+
+
+ Base constructor.
+ the byte[] making up the secret value.
+
+
+
+
+
+ Credentialed class generating agreed secrets from a peer's public key for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class decrypting RSA encrypted secrets sent from a peer for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class for generating signatures based on the use of primitives from the BC light-weight API.
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104).
+
+ The difference is that padding is concatenated versus XORed with the key, e.g:
+ H(K + opad, H(K + ipad, text))
+
+
+
+ Base constructor for one of the standard digest algorithms for which the byteLength is known.
+
+
+ Behaviour is undefined for digests other than MD5 or SHA1.
+
+ the digest.
+
+
+ Reset the mac generator.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class for providing cryptographic services for TLS based on implementations in the BC light-weight API.
+
+ This class provides default implementations for everything. If you need to customise it, extend the class
+ and override the appropriate methods.
+
+
+
+ Support class for ephemeral Diffie-Hellman using the BC light-weight library.
+
+
+ BC light-weight support class for Diffie-Hellman key pair generation and key agreement over a
+ specified Diffie-Hellman configuration.
+
+
+
+
+
+
+
+
+ Implementation class for generation of the raw DSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw DSA signature type using the BC light-weight API.
+
+
+
+ BC light-weight base class for the signers implementing the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ BC light-weight base class for the verifiers supporting the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ Support class for ephemeral Elliptic Curve Diffie-Hellman using the BC light-weight library.
+
+
+ EC domain class for generating key pairs and performing key agreement.
+
+
+
+
+
+ Implementation class for generation of ECDSA signatures in TLS 1.3+ using the BC light-weight API.
+
+
+
+ Implementation class for generation of the raw ECDSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw ECDSA signature type using the BC light-weight
+ API.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Operator supporting the generation of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the verification of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the generation of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ Operator supporting the verification of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ BC light-weight support class for handling TLS secrets and deriving key material and other secrets
+ from them.
+
+
+ Support class for X25519 using the BC light-weight library.
+
+
+ Support class for X448 using the BC light-weight library.
+
+
+ A generic TLS 1.2 AEAD cipher.
+
+
+
+
+
+ Base interface for services supporting AEAD encryption/decryption.
+
+
+ Set the key to be used by the AEAD cipher implementation supporting this service.
+ array holding the AEAD cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for the AEAD operator.
+ the nonce.
+ MAC size in bytes.
+ any additional data to be included in the MAC calculation.
+ if the parameters are inappropriate.
+
+
+ Return the maximum size of the output for input of inputLength bytes.
+ the length (in bytes) of the proposed input.
+ the maximum size of the output.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ A generic TLS 1.0-1.2 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+ Interface for block cipher services.
+
+
+ Set the key to be used by the block cipher implementation supporting this service.
+ array holding the block cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for operator.
+ array holding the initialization vector (IV).
+ offset into the array the IV starts at.
+ length of the IV in the array.
+ if the parameters are inappropriate.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ Return the blocksize (in bytes) of the underlying block cipher.
+ the cipher's blocksize.
+
+
+ Useful utility methods.
+
+
+ The NULL cipher.
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+ Generate a new instance of a TlsMac.
+ the TLS client context specific crypto parameters.
+ The MAC to use.
+
+
+ Base interface for a generic TLS MAC implementation for use with a bulk cipher.
+
+
+ Return the output length (in bytes) of this MAC.
+ The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ A new byte array containing the MAC value.
+
+
+ Constant time calculation of the MAC for some given data with a given expected length.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ The expected length of the full message.
+ Random data for padding out the MAC calculation if required.
+ A new byte array containing the MAC value.
+
+
+ Carrier class for SRP-6 group parameters.
+
+
+ Base constructor.
+ the n value.
+ the g value.
+
+
+ A selection of standard groups for SRP-6.
+
+
+
+
+
+
+
+
+ Base interface for ephemeral key agreement calculator.
+
+
+ Generate an ephemeral key pair, returning the encoding of the public key.
+ a byte encoding of the public key.
+
+
+
+ Pass in the public key for the peer to the agreement calculator.
+ a byte encoding of the peer public key.
+
+
+
+ Calculate the agreed secret based on the calculator's current state.
+ the calculated secret.
+
+
+
+ Interface providing the functional representation of a single X.509 certificate.
+
+
+ Return an encryptor based on the public key in this certificate.
+
+ a based on this certificate's public key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the OID of this certificate's 'signatureAlgorithm', as a string.
+
+
+
+
+
+
+
+
+
+
+ true if (and only if) this certificate can be used to verify the given signature algorithm.
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS bulk cipher.
+
+
+ Return the maximum input size for a ciphertext given a maximum output size for the plaintext of
+ plaintextLimit bytes.
+ the maximum output size for the plaintext.
+ the maximum input size of the ciphertext for plaintextlimit bytes of output.
+
+
+ Return the maximum output size for a ciphertext given an actual input plaintext size of
+ plaintextLength bytes and a maximum input plaintext size of plaintextLimit bytes.
+ the actual input size for the plaintext.
+ the maximum input size for the plaintext.
+ the maximum output size of the ciphertext for plaintextlimit bytes of input.
+
+
+ Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.
+ the maximum number of bytes of ciphertext.
+ the maximum size of the plaintext for ciphertextlimit bytes of input.
+
+
+ Encode the passed in plaintext using the current bulk cipher.
+ sequence number of the message represented by plaintext.
+ content type of the message represented by plaintext.
+ used for the record.
+ extra bytes to allocate at start of returned byte array.
+ array holding input plaintext to the cipher.
+ offset into input array the plaintext starts at.
+ length of the plaintext in the array.
+ A containing the result of encoding (after 'headerAllocation' unused
+ bytes).
+
+
+
+ Decode the passed in ciphertext using the current bulk cipher.
+ sequence number of the message represented by ciphertext.
+ content type used in the record for this message.
+ used for the record.
+ array holding input ciphertext to the cipher.
+ offset into input array the ciphertext starts at.
+ length of the ciphertext in the array.
+ A containing the result of decoding.
+
+
+
+
+
+
+
+
+
+ Service and object creation interface for the primitive types and services that are associated with
+ cryptography in the API.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS 1.2.
+ A list of
+ values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS versions older than 1.2.
+ An array of values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto can support the passed in hash algorithm.
+ the algorithm of interest.
+ true if cryptoHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ the algorithm of interest.
+ true if cryptoSignatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support DH key agreement.
+ true if this instance can support DH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support ECDH key agreement.
+ true if this instance can support ECDH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in block/stream encryption algorithm.
+
+ the algorithm of interest.
+ true if encryptionAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support HKDF with the passed in hash algorithm.
+ the algorithm of interest.
+ true if HKDF is supported with cryptoHashAlgorithm, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in MAC algorithm.
+ the algorithm of interest.
+ true if macAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto supports the passed in named group
+ value.
+ true if this instance supports the passed in named group value.
+
+
+
+ Return true if this TlsCrypto can support RSA encryption/decryption.
+ true if this instance can support RSA encryption/decryption, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ true if signatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm.
+ the algorithm of interest.
+ true if sigAndHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature scheme.
+ the scheme of interest.
+ true if signatureScheme is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support SRP authentication.
+ true if this instance can support SRP authentication, false otherwise.
+
+
+ Create a TlsSecret object based on provided data.
+ the data to base the TlsSecret on.
+ a TlsSecret based on the provided data.
+
+
+ Create a TlsSecret object containing a randomly-generated RSA PreMasterSecret
+ the client version to place in the first 2 bytes
+ a TlsSecret containing the PreMasterSecret.
+
+
+ Return the primary (safest) SecureRandom for this crypto.
+ a SecureRandom suitable for key generation.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of an X.509 certificate.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of a certificate.
+ Certificate type as per IANA TLS Certificate Types registry.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a cipher for the specified encryption and MAC algorithms.
+
+ See enumeration classes , for appropriate
+ argument values.
+
+ context specific parameters.
+ the encryption algorithm to be employed by the cipher.
+ the MAC algorithm to be employed by the cipher.
+ a implementing the encryption and MAC algorithms.
+
+
+
+ Create a domain object supporting the domain parameters described in dhConfig.
+ the config describing the DH parameters to use.
+ a TlsDHDomain supporting the parameters in dhConfig.
+
+
+ Create a domain object supporting the domain parameters described in ecConfig.
+ the config describing the EC parameters to use.
+ a TlsECDomain supporting the parameters in ecConfig.
+
+
+ Adopt the passed in secret, creating a new copy of it.
+ the secret to make a copy of.
+ a TlsSecret based on the original secret.
+
+
+ Create a suitable hash for the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the hash needs to implement.
+ a .
+
+
+ Create a suitable HMAC for the MAC algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the MAC algorithm the HMAC needs to match.
+ a .
+
+
+ Create a suitable HMAC using the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the HMAC should use.
+ a .
+
+
+ Create a nonce generator.
+
+ Each call should construct a new generator, and the generator should be returned from this call only after
+ automatically seeding from this 's entropy source, and from the provided additional
+ seed material. The output of each returned generator must be completely independent of the others.
+
+ context-specific seed material
+ a .
+
+
+ Create an SRP-6 client.
+ client config.
+ an initialised SRP6 client object.
+
+
+ Create an SRP-6 server.
+ server config.
+ the SRP6 verifier value.
+ an initialised SRP6 server object.
+
+
+ Create an SRP-6 verifier generator.
+ generator config.
+ an initialized SRP6 verifier generator.
+
+
+ Setup an initial "secret" for a chain of HKDF calls (RFC 5869), containing a string of HashLen
+ zeroes.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+
+
+ Basic exception class for crypto services to pass back a cause.
+
+
+ Carrier class for context-related parameters needed for creating secrets and ciphers.
+
+
+ Base constructor.
+ the context for this parameters object.
+
+
+
+
+
+ Basic config for Diffie-Hellman.
+
+
+ Domain interface to service factory for creating Diffie-Hellman operators.
+
+
+ Return an agreement operator suitable for ephemeral Diffie-Hellman.
+ a key agreement operator.
+
+
+ Carrier class for Elliptic Curve parameter configuration.
+
+
+ Return the group used.
+ the named group used.
+
+
+ Domain interface to service factory for creating Elliptic-Curve (EC) based operators.
+
+
+ Return an agreement operator suitable for ephemeral EC Diffie-Hellman.
+ a key agreement operator.
+
+
+ Base interface for an encryptor.
+
+
+ Encrypt data from the passed in input array.
+ byte array containing the input data.
+ offset into input where the data starts.
+ the length of the data to encrypt.
+ the encrypted data.
+
+
+
+ Interface for message digest, or hash, services.
+
+
+ Update the hash with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated hash for any input passed in.
+ the hash value.
+
+
+ Return a clone of this hash object representing its current state.
+ a clone of the current hash.
+
+
+ Reset the hash underlying this service.
+
+
+ Interface for MAC services based on HMAC.
+
+
+ Return the internal block size for the message digest underlying this HMAC service.
+ the internal block size for the digest (in bytes).
+
+
+ Interface for MAC services.
+
+
+ Set the key to be used by the MAC implementation supporting this service.
+ array holding the MAC key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+ Update the MAC with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated MAC for any input passed in.
+ the MAC value.
+
+
+ Write the calculated MAC to an output buffer.
+ output array to write the MAC to.
+ offset into the output array to write the MAC to.
+
+
+ Return the length of the MAC generated by this service.
+ the MAC length.
+
+
+ Reset the MAC underlying this service.
+
+
+ Generate a nonce byte[] string.
+ the length, in bytes, of the nonce to generate.
+ the nonce value.
+
+
+ The cipher for TLS_NULL_WITH_NULL_NULL.
+
+
+ Interface supporting the generation of key material and other SSL/TLS secret values from PRFs.
+
+
+
+ Calculate an HMAC with this secret's data as the key.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ array containing the input data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return a new secret based on applying a PRF to this one.
+ PRF algorithm to use.
+ the label details.
+ the seed details.
+ the size (in bytes) of the secret to generate.
+ the new secret.
+
+
+ Destroy the internal state of the secret.
+
+ After this call, any attempt to use the will result in an
+ being thrown.
+
+
+
+ Return an encrypted copy of the data this secret is based on.
+ the encryptor to use for protecting the internal data.
+ an encrypted copy of this secret's internal data.
+
+
+
+ Return the internal data from this secret.
+
+ The does not keep a copy of the data. After this call, any attempt to use the
+ will result in an being thrown.
+
+ the secret's internal data.
+
+
+ RFC 5869 HKDF-Expand function, with this secret's data as the pseudo-random key ('prk').
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ optional context and application specific information (can be zero-length).
+ length of output keying material in octets.
+ output keying material (of 'length' octets).
+
+
+ RFC 5869 HKDF-Extract function, with this secret's data as the 'salt'.
+
+ The does not keep a copy of the data. After this call, any attempt to use
+ the will result in an being thrown.
+
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ input keying material.
+ a pseudo-random key (of HashLen octets).
+
+
+ Base interface for a TLS signer that works on raw message digests.
+
+
+ Generate an encoded signature based on the passed in hash.
+ the signature algorithm to use.
+ the hash calculated for the signature.
+ an encoded signature.
+ in case of an exception processing the hash.
+
+
+
+
+
+ Basic interface for an SRP-6 client implementation.
+
+
+ Generates the secret S given the server's credentials
+ The server's credentials
+ Client's verification message for the server
+ If server's credentials are invalid
+
+
+ Generates client's credentials given the client's salt, identity and password
+ The salt used in the client's verifier.
+ The user's identity (eg. username)
+ The user's password
+ Client's public value to send to server
+
+
+ Basic interface for an SRP-6 server implementation.
+
+
+ Generates the server's credentials that are to be sent to the client.
+ The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+
+ The client's credentials.
+ A shared secret .
+ If client's credentials are invalid.
+
+
+ Base interface for a generator for SRP-6 verifiers.
+
+
+ Creates a new SRP-6 verifier value.
+ The salt to use, generally should be large and random
+ The user's identifying information (eg. username)
+ The user's password
+ A new verifier for use in future SRP authentication
+
+
+ Basic config for SRP.
+
+
+ Return the (N, g) values used in SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+ Set the (N, g) values used for SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS verifier that works with signatures and either raw message digests, or entire
+ messages.
+
+
+
+
+
+ Return true if the passed in signature and hash represent a real signature.
+ the signature object containing the signature to be verified.
+ the hash calculated for the signature.
+ true if signature verifies, false otherwise.
+ in case of an exception verifying signature.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object sending and receiving DTLS data.
+
+
+ Container class for generating signatures that carries the signature type, parameters, public key
+ certificate and public key's associated signer object.
+
+
+ Accept named groups and various standard DH groups with 'P' at least
+ bits.
+
+
+ Accept named groups and various standard DH groups with 'P' at least the specified number of bits.
+
+ the minimum bitlength of 'P'.
+
+
+ Accept named groups and a custom set of group parameters, subject to a minimum bitlength for 'P'.
+
+ a list of acceptable s.
+ the minimum bitlength of 'P'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+ an of acceptable .
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+
+
+
+
+
+
+ a (or null before TLS 1.2).
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ the 48-bit DTLSPlainText.sequence_number field of a received record.
+ true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+ indicates whether is now the latest confirmed
+ sequence number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The record is newer (by epoch and sequence number) than any record received previously.
+
+
+ The record includes the (valid) connection ID (RFC 9146) for this connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4492 5.4
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+ RFC 4492 5.1.2
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6520 3.
+
+
+ RFC 6066
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 8446 4.6.3
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7919
+
+
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 3546 3.6
+
+
+ an of , specifying the list of
+ trusted OCSP responders. An empty list has the special meaning that the responders are implicitly known to
+ the server - e.g., by prior arrangement.
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+
+ an of .
+
+
+ OCSP request extensions.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse an from a .
+ the to parse from.
+ an object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7301 Represents a protocol name for use with ALPN.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Connection ID we use during communication to the peer.
+
+
+ Connection ID our peer uses for communication to us.
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 3. Server Name Indication
+
+ Current implementation uses this guidance: "For backward compatibility, all future data structures associated
+ with new NameTypes MUST begin with a 16-bit length field. TLS MAY treat provided server names as opaque data
+ and pass the names and types to the application.". RFC 6066 specifies ASCII encoding for host_name (possibly
+ using A-labels for IDNs), but note that the previous version (RFC 4366) specified UTF-8 encoding (see RFC 6066
+ Appendix A). For maximum compatibility, it is recommended that client code tolerate receiving UTF-8 from the
+ peer, but only generate ASCII itself.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ an of .
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to .
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ For TLS 1.3+ usage, some signature schemes are constrained to use a particular
+ ({@link NamedGroup}. Not relevant for TLS 1.2 and below.
+
+
+ An implementation of that simulates the existence of "unknown"
+ identities to obscure the fact that there is no verifier for them.
+
+
+ Create a that implements the algorithm from RFC 5054
+ 2.5.1.3.
+
+ the defining the group that SRP is operating in.
+ the secret "seed key" referred to in RFC 5054 2.5.1.3.
+ an instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4680
+
+
+ Base interface to provide TLS authentication credentials.
+
+
+ Called by the protocol handler to report the server certificate.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the server certificate received.
+
+
+
+ Return client credentials in response to server's certificate request.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated and the details of
+ the .
+
+ details of the certificate request.
+ a object or null for no client authentication.
+
+
+
+ Return the session this client wants to resume, if any.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection, or
+ null to use a new session.
+
+
+
+ Return the external PSKs to offer in the ClientHello.
+ This will only be called when TLS 1.3 or higher is amongst the offered protocol versions.
+ an of instances, or null if none should be
+ offered.
+
+
+ (Int32 -> byte[])
+
+
+
+ If this client is offering TLS 1.3 or higher, this method may be called to determine for which
+ groups a key share should be included in the initial ClientHello.
+
+ Groups that were not included in the supported_groups extension (by will
+ be ignored. The protocol will then add a suitable key_share extension to the ClientHello extensions.
+
+ an of named group values, possibly empty or
+ null.
+
+
+
+
+
+
+ Notifies the client of the session that will be offered in ClientHello for resumption, if any.
+
+
+ This will be either the session returned from {@link #getSessionToResume()} or null if that session was
+ unusable. NOTE: the actual negotiated session_id is notified by .
+
+ The representing the resumable session to be offered for
+ this connection, or null if there is none.
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+
+
+
+
+
+
+ The protocol implementation validates that any server extensions received correspond to client
+ extensions sent.
+
+ If further processing of the server extensions is needed, it can be done in this callback. NOTE: This is
+ not called for session resumption handshakes.
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The ticket is
+ opaque to the client and clients MUST NOT examine the ticket under the assumption that it complies with e.g.
+ RFC 5077 4. "Recommended Ticket Construction".
+
+ The ticket.
+
+
+
+ Marker interface to distinguish a TLS client context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS context implementation.
+
+
+ Return true if this context is for a server, false otherwise.
+ true for a server based context, false for a client based one.
+
+
+ Used to get the resumable session, if any, used by this connection.
+
+ Only available after the handshake has successfully completed.
+
+ A representing the resumable session used by this connection, or null if
+ no resumable session available.
+
+
+
+ Used to get the session information for this connection.
+
+ Only available after the handshake has successfully completed. Use
+ to find out if the session is resumable.
+
+ A representing the session used by this connection.
+
+
+
+ Export the value of the specified channel binding.
+
+ Only available after the handshake has successfully completed.
+
+ A constant specifying the channel binding to
+ export.
+ A copy of the channel binding data as a byte[], or null if the binding could not be
+ determined.
+
+
+ Export (early data) keying material according to RFC 5705: "Keying Material Exporters for TLS", as
+ updated for TLS 1.3 (RFC 8446).
+
+ NOTE: for use in settings where an exporter is needed for 0-RTT data.
+
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS", as updated for
+ TLS 1.3 (RFC 8446) when negotiated.
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Support interface for generating a secret based on the credentials sent by a TLS peer.
+
+
+ Calculate an agreed secret based on our credentials and the public key credentials of our peer.
+
+ public key certificate of our TLS peer.
+ the agreed secret.
+ in case of an exception on generation of the secret.
+
+
+ Base interface for a class that decrypts TLS secrets.
+
+
+ Decrypt the passed in cipher text using the parameters available.
+ the parameters to use for the decryption.
+ the cipher text containing the secret.
+ a TLS secret.
+ on a parsing or decryption error.
+
+
+ Support interface for generating a signature based on our private credentials.
+
+
+ Generate a signature against the passed in hash.
+ a message digest calculated across the message the signature is to apply to.
+ an encoded signature.
+ if the hash cannot be processed, or there is an issue with the private
+ credentials.
+
+
+ Return the algorithm IDs for the signature algorithm and the associated hash it uses.
+ the full algorithm details for the signature.
+
+
+
+
+
+ Base interface for interfaces/classes carrying TLS credentials.
+
+
+ Return the certificate structure representing our identity.
+ our certificate structure.
+
+
+ (D)TLS DH_anon key exchange.
+
+
+ Interface for verifying explicit Diffie-Hellman group parameters.
+
+
+ Check whether the given DH group is acceptable for use.
+ the to check.
+ true if (and only if) the specified group is acceptable.
+
+
+ (D)TLS DH key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (D)TLS ECDH_anon key exchange (see RFC 4492).
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+ (Int32 -> byte[])
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object that can calculate a handshake hash.
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface for a key exchange factory offering a variety of specific algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This exception will be thrown (only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+ Object Identifiers associated with TLS extensions.
+
+
+ RFC 7633
+
+
+ Base interface for a (D)TLS endpoint.
+
+
+
+
+
+ Notifies the peer that a new handshake is about to begin.
+
+
+
+ Specify the timeout, in milliseconds, to use for the complete handshake process.
+
+ NOTE: Currently only respected by DTLS protocols. Negative values are not allowed. A timeout of zero means
+ an infinite timeout (i.e.the handshake will never time out).
+
+ the handshake timeout, in milliseconds.
+
+
+ Specify the time, in milliseconds, after which a handshake packet is resent.
+
+ NOTE: Currently only respected by DTLS protocols.
+
+ the handshake resend time, in milliseconds.
+
+
+
+ This option is provided as a last resort for interoperability with TLS peers that fail to correctly send a
+ close_notify alert at end of stream. Implementations SHOULD return true; caution is advised if returning
+ false without a full understanding of the implications.
+
+
+
+ This implementation supports RFC 7627 and will always negotiate the extended_master_secret
+ extension where possible. When connecting to a peer that does not offer/accept this extension, it is
+ recommended to abort the handshake.This option is provided for interoperability with legacy peers, although
+ some TLS features will be disabled in that case (see RFC 7627 5.4).
+
+ true if the handshake should be aborted when the peer does not negotiate the
+ extended_master_secret extension, or false to support legacy interoperability.
+
+
+ See RFC 5246 6.2.3.2. Controls whether block cipher encryption may randomly add extra padding
+ beyond the minimum.
+
+ Note that in configurations where this is known to be potential security risk this setting will be ignored
+ (and extended padding disabled). Extra padding is always supported when decrypting received records.
+
+ true if random extra padding should be added during block cipher encryption, or
+ false to always use the minimum amount of required padding.
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the ability to set
+ gmt_unix_time as an option only, off by default.".
+
+ NOTE: For a server that has negotiated TLS 1.3 (or later), or a client that has offered TLS 1.3 (or later),
+ this is not called and gmt_unix_time is not used.
+
+ true if the current time should be used in the gmt_unix_time field of Random, or
+ false if gmt_unix_time should contain a cryptographically random value.
+
+
+ RFC 5746 3.4/3.6. In case this is false, peers may want to terminate the handshake instead of
+ continuing; see Section 4.1/4.3 for discussion.
+
+ NOTE: TLS 1.3 forbids renegotiation, so this is never called when TLS 1.3 (or later) was negotiated.
+
+
+
+
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ Return a instance that will control the generation of heartbeats
+ locally (if permitted by the remote peer), or null to not generate heartbeats. Heartbeats are described in
+ RFC 6520.
+ an instance of .
+
+
+
+ Return the heartbeat mode applicable to the remote peer. Heartbeats are described in RFC 6520.
+
+
+ See enumeration class for appropriate return values.
+
+ the value.
+
+
+ Indicates whether a DTLS connection should ignore corrupt records (bad_record_mac) instead of
+ failing the connection.
+ Called only once at the start of a connection and applies throughout.
+ The value true to ignore corrupt DTLS records, or false to fail the connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method is called, when a change cipher spec message is received.
+ If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network.
+
+ The method will return immediately, if there is still some data left in the buffer, or block until some
+ application data has been read from the network.
+
+ The buffer where the data will be copied to.
+ The position where the data will be placed in the buffer.
+ The maximum number of bytes to read.
+ The number of bytes read.
+ If something goes wrong during reading data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Write some application data.
+
+ Fragmentation is handled internally. Usable in both blocking/non-blocking modes.
+ In blocking mode, the output will be automatically sent via the underlying transport. In non-blocking mode,
+ call to get the output bytes to send to the peer.
+ This method must not be called until after the initial handshake is complete. Attempting to call it earlier
+ will result in an .
+
+ The buffer containing application data to send.
+ The offset at which the application data begins
+ The number of bytes of application data.
+ If called before the initial handshake has completed.
+
+ If connection is already closed, or for encryption or transport errors.
+
+
+
+
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+
+
+
+
+
+
+
+ Equivalent to OfferInput(input, 0, input.Length)
.
+ The input buffer to offer.
+
+
+
+
+ Offer input from an arbitrary source.
+ Only allowed in non-blocking mode.
+ This method will decrypt and process all records that are fully available. If only part of a record is
+ available, the buffer will be retained until the remainder of the record is offered.
+ If any records containing application data were processed, the decrypted data can be obtained using
+ . If any records containing protocol data were processed, a
+ response may have been generated. You should always check to see if there is any available output after
+ calling this method by calling .
+
+ The input buffer to offer.
+ The offset within the input buffer that input begins.
+ The number of bytes of input being offered.
+ If an error occurs while decrypting or processing a record.
+
+
+ Gets the amount of received application data.
+ A call to is guaranteed to be able to return at least
+ this much data.
+ Only allowed in non-blocking mode.
+
+ The number of bytes of available application data.
+
+
+ Retrieves received application data.
+
+ Use to check how much application data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned.
+ Only allowed in non-blocking mode.
+
+ The buffer to hold the application data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+ Gets the amount of encrypted data available to be sent.
+
+ A call to is guaranteed to be able to return at least this much
+ data. Only allowed in non-blocking mode.
+
+ The number of bytes of available encrypted data.
+
+
+ Retrieves encrypted data to be sent.
+
+ Use to check how much encrypted data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned. Only allowed in non-blocking mode.
+
+ The buffer to hold the encrypted data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Make sure the 'buf' is now empty. Fail otherwise.
+ The to check.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Processor interface for a PSK identity.
+
+
+ Base interface for an object that can process a PSK identity.
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS RSA key exchange.
+
+
+ Interface describing a TLS server endpoint.
+
+
+ Return the specified session, if available.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ the ID of the session to resume.
+ A with the specified session ID, or null.
+
+
+
+ Return the external PSK to select from the ClientHello.
+
+ WARNING: EXPERIMENTAL FEATURE, UNSTABLE API
+ Note that this will only be called when TLS 1.3 or higher is amongst the offered protocol versions, and one
+ or more PSKs are actually offered.
+
+ an of instances.
+ The corresponding to the selected identity, or null to not select
+ any.
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Return server credentials to use.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated.
+
+ a object or null for anonymous key exchanges.
+
+
+
+
+ This method will be called (only) if the server included an extension of type "status_request" with empty
+ "extension_data" in the extended server hello. See RFC 3546 3.6. Certificate Status Request. If a
+ non-null is returned, it is sent to the client as a handshake message of
+ type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Called by the protocol handler to report the client certificate, only if
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See RFC 5077
+ 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket.
+
+
+
+ Server certificate carrier interface.
+
+
+ Marker interface to distinguish a TLS server context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a carrier object for a TLS session.
+
+
+ Interface for verifying SRP config needs to conform to.
+
+
+ Check whether the given SRP configuration is acceptable for use.
+ the to check.
+ true if (and only if) the specified configuration is acceptable.
+
+
+ Processor interface for an SRP identity.
+
+
+ Base interface for an object that can return login parameters from an SRP identity.
+
+
+ Lookup the corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC 5054 2.5.1.3.
+ is provided for this purpose.
+
+ the SRP identity sent by the connecting client.
+ the for the specified identity, or else 'simulated' parameters
+ if the identity is not recognized. A null value is also allowed, but not recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Whether a server can select the specified cipher suite given the available signature algorithms
+ for ServerKeyExchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check the signature algorithm for certificates in the peer's CertPath as specified in RFC 5246
+ 7.4.2, 7.4.4, 7.4.6 and similar rules for earlier TLS versions.
+
+ The supplied CertPath should include the trust anchor (its signature algorithm isn't checked, but in the
+ general case checking a certificate requires the issuer certificate).
+
+ if any certificate in the CertPath (excepting the trust anchor) has a
+ signature algorithm that is not one of the locally supported signature algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a pre_master_secret and send it encrypted to the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 5.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ see for valid constants.
+ valid lengths from 0 to 255.
+
+
+ see for valid constants.
+
+
+ valid lengths from 0 to 255.
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ The failure code associated with this exception, if one is set.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value the value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of the specified length, padded with
+ leading zeros as necessary.
+ @param length the fixed length of the result.
+ @param n the value to be converted.
+ @return a byte array padded to a fixed length with leading zeros.
+
+
+ Write the passed in value as unsigned bytes to the specified buffer range, padded with
+ leading zeros as necessary.
+
+ @param n
+ the value to be converted.
+ @param buf
+ the buffer to which the value is written.
+ @param off
+ the start offset in array buf
at which the data is written.
+ @param len
+ the fixed length of data written (possibly padded with leading zeros).
+
+
+
+ Creates a Random BigInteger from the secure random of a given bit length.
+
+
+
+
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+ Interface for matching objects in an .
+ The contravariant type of selectable objects.
+
+
+ Match the passed in object, returning true if it would be selected by this selector, false
+ otherwise.
+ The object to be matched.
+ true
if the objects is matched by this selector, false otherwise.
+
+
+ A generic interface describing a simple store of objects.
+ The covariant type of stored objects.
+
+
+ Enumerate the (possibly empty) collection of objects matched by the given selector.
+ The used to select matching objects.
+ An of the matching objects.
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ The DateTime value will be converted to UTC (using before
+ conversion.
+ A DateTime value not before the epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before the epoch.
+
+
+
+ Create a UTC DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+ 'unixMs' is before 'MinUnixMs' or after 'MaxUnixMs'.
+
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Return a byte array representing the implementing object.
+ An encoding of this object as a byte array.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ An
+
+
+
+
+
+ A
+
+
+
+
+
+ Seek ':" up to the limit.
+
+
+
+
+
+
+ Consume the dashes
+
+
+
+
+
+ Skip white space leave char in stream.
+
+
+
+
+ Read forward consuming the expected string.
+
+ expected string
+ false if not consumed
+
+
+
+ Consume until dash.
+
+ true if stream end not met
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ In case of IO failure.
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ The size of temporary buffer to use.
+ In case of IO failure.
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType
can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID
must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType
is
+ otherObjectDigest
.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID
must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null
if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null
if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null
if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extensions object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector
like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true
if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null
)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null
is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of List
s
+ made up of an Integer
in the first entry and a DER encoded
+ byte array or a String
in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null
)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null
is
+ given any will do.
+
+ The collection consists of GeneralName
objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of List
s
+ made up of an Integer
in the first entry and a DER encoded
+ byte array or a String
in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector
implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector
objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair
, this method
+ returns false
.
+
+ The X509CertificatePair
to be tested.
+ true
if the object matches this selector.
+
+
+
+ An ISet
of DerObjectIdentifier
objects.
+
+
+
+
+ An ICollection
of X509Name
objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null
is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate
being checked (or
+ null
)
+ @see #getAttrCertificateChecking()
+
+
+ If true
only complete CRLs are returned. Defaults to
+ false
.
+
+ @return true
if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false
.
+
+ @return Returns true
if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false
.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null
.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return the DER encoding of this certificate.
+
+ A byte array containing the DER encoding of this certificate.
+ If there is an error encoding the certificate.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ If verifier provider is not appropriate or the certificate signature algorithm
+ is invalid.
+
+
+ Verify the certificate's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the certificate's alternative
+ signature.
+ If verifier provider is not appropriate or the certificate alternative signature
+ algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Verify the CRL's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the CRL's alternative signature.
+
+ If verifier provider is not appropriate or the CRL alternative signature
+ algorithm is invalid.
+
+
+
+ Return the DER encoding of this CRL.
+
+ A byte array containing the DER encoding of this CRL.
+ If there is an error encoding the CRL.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false
{@link #getCertificateIssuer()} will always
+ return null
, previousCertificateIssuer
is
+ ignored. If this isIndirect
is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer
is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true
if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+ Value of is ignored.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ Create a builder for a version 2 CRL, initialised with another CRL.
+ Template CRL to base the new one on.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+ Create a generator for a version 3 certificate, initialised with another certificate.
+ Template certificate to base the new one on.
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
diff --git a/packages/BouncyCastle.Cryptography.2.2.1/packageIcon.png b/packages/BouncyCastle.Cryptography.2.2.1/packageIcon.png
new file mode 100644
index 0000000..076d932
Binary files /dev/null and b/packages/BouncyCastle.Cryptography.2.2.1/packageIcon.png differ
diff --git a/packages/Google.Protobuf.3.21.9/.signature.p7s b/packages/Google.Protobuf.3.21.9/.signature.p7s
new file mode 100644
index 0000000..c0723f9
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/.signature.p7s differ
diff --git a/packages/Google.Protobuf.3.21.9/Google.Protobuf.3.21.9.nupkg b/packages/Google.Protobuf.3.21.9/Google.Protobuf.3.21.9.nupkg
new file mode 100644
index 0000000..1758cdd
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/Google.Protobuf.3.21.9.nupkg differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.dll b/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.dll
new file mode 100644
index 0000000..f73a17b
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.dll differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.pdb b/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.pdb
new file mode 100644
index 0000000..4fd85f7
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.pdb differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.xml b/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.xml
new file mode 100644
index 0000000..fbff505
--- /dev/null
+++ b/packages/Google.Protobuf.3.21.9/lib/net45/Google.Protobuf.xml
@@ -0,0 +1,10465 @@
+
+
+
+ Google.Protobuf
+
+
+
+
+ Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy
+
+
+
+
+ The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy
+
+
+
+
+ Determines which copy routine to use based on the number of bytes to be copied.
+
+
+
+
+ Reverses the order of bytes in the array
+
+
+
+
+ Immutable array of bytes.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+ This method encapsulates converting array to memory. Reduces need for SecuritySafeCritical
+ in .NET Framework.
+
+
+
+
+ Constructs a new ByteString from the given memory. The memory is
+ *not* copied, and must not be modified after this constructor is called.
+
+
+
+
+ Returns an empty ByteString.
+
+
+
+
+ Returns the length of this ByteString in bytes.
+
+
+
+
+ Returns true if this byte string is empty, false otherwise.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Converts this into a byte array.
+
+ The data is copied - changes to the returned array will not be reflected in this ByteString.
+ A byte array with the same data as this ByteString.
+
+
+
+ Converts this into a standard base64 representation.
+
+ A base64 representation of this ByteString.
+
+
+
+ Constructs a from the Base64 Encoded String.
+
+
+
+
+ Constructs a from data in the given stream, synchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from data in the given stream, asynchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ The cancellation token to use when reading from the stream, if any.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from the given array. The contents
+ are copied, so further modifications to the array will not
+ be reflected in the returned ByteString.
+ This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form
+ which is primarily useful for testing.
+
+
+
+
+ Constructs a from a portion of a byte array.
+
+
+
+
+ Constructs a from a read only span. The contents
+ are copied, so further modifications to the span will not
+ be reflected in the returned .
+
+
+
+
+ Creates a new by encoding the specified text with
+ the given encoding.
+
+
+
+
+ Creates a new by encoding the specified text in UTF-8.
+
+
+
+
+ Returns the byte at the given index.
+
+
+
+
+ Converts this into a string by applying the given encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with the given encoding.
+
+ The encoding to use to decode the binary data into text.
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Converts this into a string by applying the UTF-8 encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with UTF-8.
+
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Creates a CodedInputStream from this ByteString's data.
+
+
+
+
+ Compares two byte strings for equality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ true if the byte strings are equal; false otherwise.
+
+
+
+ Compares two byte strings for inequality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ false if the byte strings are equal; true otherwise.
+
+
+
+ Compares this byte string with another object.
+
+ The object to compare this with.
+ true if refers to an equal ; false otherwise.
+
+
+
+ Returns a hash code for this object. Two equal byte strings
+ will return the same hash code.
+
+ A hash code for this object.
+
+
+
+ Compares this byte string with another.
+
+ The to compare this with.
+ true if refers to an equal byte string; false otherwise.
+
+
+
+ Copies the entire byte array to the destination array provided at the offset specified.
+
+
+
+
+ Writes the entire byte array to the provided stream
+
+
+
+
+ SecuritySafeCritical attribute can not be placed on types with async methods.
+ This class has ByteString's async methods so it can be marked with SecuritySafeCritical.
+
+
+
+
+ Reads and decodes protocol message fields.
+
+
+
+ This class is generally used by generated code to read appropriate
+ primitives from the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format.
+
+
+ Repeated fields and map fields are not handled by this class; use
+ and to serialize such fields.
+
+
+
+
+
+ Whether to leave the underlying stream open when disposing of this stream.
+ This is always true when there's no stream.
+
+
+
+
+ Buffer of data read from the stream or provided at construction time.
+
+
+
+
+ The stream to read further input from, or null if the byte array buffer was provided
+ directly on construction, with no further data available.
+
+
+
+
+ The parser state is kept separately so that other parse implementations can reuse the same
+ parsing primitives.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given byte array.
+
+
+
+
+ Creates a new that reads from the given byte array slice.
+
+
+
+
+ Creates a new reading data from the given stream, which will be disposed
+ when the returned object is disposed.
+
+ The stream to read from.
+
+
+
+ Creates a new reading data from the given stream.
+
+ The stream to read from.
+ true to leave open when the returned
+ is disposed; false to dispose of the given stream when the
+ returned object is disposed.
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the default limits.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the specified limits.
+
+
+ This chains to the version with the default limits instead of vice versa to avoid
+ having to check that the default values are valid every time.
+
+
+
+
+ Creates a with the specified size and recursion limits, reading
+ from an input stream.
+
+
+ This method exists separately from the constructor to reduce the number of constructor overloads.
+ It is likely to be used considerably less frequently than the constructors, as the default limits
+ are suitable for most use cases.
+
+ The input stream to read from
+ The total limit of data to read from the stream.
+ The maximum recursion depth to allow while reading.
+ A CodedInputStream reading from with the specified size
+ and recursion limits.
+
+
+
+ Returns the current position in the input stream, or the position in the input buffer
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the stream.
+
+
+
+
+ Returns the size limit for this stream.
+
+
+ This limit is applied when reading from the underlying stream, as a sanity check. It is
+ not applied when reading from a byte array data source without an underlying stream.
+ The default value is Int32.MaxValue.
+
+
+ The size limit.
+
+
+
+
+ Returns the recursion limit for this stream. This limit is applied whilst reading messages,
+ to avoid maliciously-recursive data.
+
+
+ The default limit is 100.
+
+
+ The recursion limit for this stream.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Disposes of this instance, potentially closing any underlying stream.
+
+
+ As there is no flushing to perform here, disposing of a which
+ was constructed with the leaveOpen option parameter set to true (or one which
+ was constructed to read from a byte array) has no effect.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of stream".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputStream; it may be the end of the logical stream
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of stream. (0 is never a valid tag.)
+
+
+
+ Skips the data for the field with the tag we've just read.
+ This should be called directly after , when
+ the caller wishes to skip an unknown field.
+
+
+ This method throws if the last-read tag was an end-group tag.
+ If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the
+ start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly
+ resulting in an error if an end-group tag has not been paired with an earlier start-group tag.
+
+ The last tag was an end-group tag
+ The last read operation read to the end of the logical stream
+
+
+
+ Skip a group.
+
+
+
+
+ Reads a double field from the stream.
+
+
+
+
+ Reads a float field from the stream.
+
+
+
+
+ Reads a uint64 field from the stream.
+
+
+
+
+ Reads an int64 field from the stream.
+
+
+
+
+ Reads an int32 field from the stream.
+
+
+
+
+ Reads a fixed64 field from the stream.
+
+
+
+
+ Reads a fixed32 field from the stream.
+
+
+
+
+ Reads a bool field from the stream.
+
+
+
+
+ Reads a string field from the stream.
+
+
+
+
+ Reads an embedded message field value from the stream.
+
+
+
+
+ Reads an embedded group field from the stream.
+
+
+
+
+ Reads a bytes field value from the stream.
+
+
+
+
+ Reads a uint32 field value from the stream.
+
+
+
+
+ Reads an enum field value from the stream.
+
+
+
+
+ Reads an sfixed32 field value from the stream.
+
+
+
+
+ Reads an sfixed64 field value from the stream.
+
+
+
+
+ Reads an sint32 field value from the stream.
+
+
+
+
+ Reads an sint64 field value from the stream.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Reads a raw varint from the stream.
+
+
+
+
+ Reads a 32-bit little-endian integer from the stream.
+
+
+
+
+ Reads a 64-bit little-endian integer from the stream.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Called when buffer is empty to read more bytes from the
+ input. If is true, RefillBuffer() guarantees that
+ either there will be at least one byte in the buffer when it returns
+ or it will throw an exception. If is false,
+ RefillBuffer() returns false if no more bytes were available.
+
+
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a top-level message or a nested message after the limits for this message have been pushed.
+ (parser will proceed until the end of the current limit)
+ NOTE: this method needs to be public because it's invoked by the generated code - e.g. msg.MergeFrom(CodedInputStream input) method
+
+
+
+
+ Encodes and writes protocol message fields.
+
+
+
+ This class is generally used by generated code to write appropriate
+ primitives to the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format. Unlike some other implementations,
+ this does not include combined "write tag and value" methods. Generated
+ code knows the exact byte representations of the tags they're going to write,
+ so there's no need to re-encode them each time. Manually-written code calling
+ this class should just call one of the WriteTag overloads before each value.
+
+
+ Repeated fields and map fields are not handled by this class; use RepeatedField<T>
+ and MapField<TKey, TValue> to serialize such fields.
+
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ double field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ float field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bool field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ string field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ group field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ embedded message field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bytes field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ enum field, including the tag. The caller is responsible for
+ converting the enum value to its numeric value.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a length,
+ as written by .
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a tag.
+
+
+
+
+ The buffer size used by CreateInstance(Stream).
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array slice. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new which write to the given stream, and disposes of that
+ stream when the returned CodedOutputStream is disposed.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+ The size of buffer to use internally.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream.
+
+ The stream to write to.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to.
+ The size of buffer to use internally.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Returns the current position in the stream, or the position in the output buffer
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ Only the message data is written, without a length-delimiter.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Indicates that a CodedOutputStream wrapping a flat byte array
+ ran out of space.
+
+
+
+
+ Flushes any buffered data and optionally closes the underlying stream, if any.
+
+
+
+ By default, any underlying stream is closed by this method. To configure this behaviour,
+ use a constructor overload with a leaveOpen parameter. If this instance does not
+ have an underlying stream, this method does nothing.
+
+
+ For the sake of efficiency, calling this method does not prevent future write calls - but
+ if a later write ends up writing to a stream which has been disposed, that is likely to
+ fail. It is recommend that you not call any other methods after this.
+
+
+
+
+
+ Flushes any buffered data to the underlying stream (if there is one).
+
+
+
+
+ Verifies that SpaceLeft returns zero. It's common to create a byte array
+ that is exactly big enough to hold a message, then write to it with
+ a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that
+ the message was actually as big as expected, which can help finding bugs.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ Utility to compare if two Lists are the same, and the hash code
+ of a List.
+
+
+
+
+ Checks if two lists are equal.
+
+
+
+
+ Gets the list's hash code.
+
+
+
+
+ Representation of a map field in a Protocol Buffer message.
+
+ Key type in the map. Must be a type supported by Protocol Buffer map keys.
+ Value type in the map. Must be a type supported by Protocol Buffers.
+
+
+ For string keys, the equality comparison is provided by .
+
+
+ Null values are not permitted in the map, either for wrapper types or regular messages.
+ If a map is deserialized from a data stream and the value is missing from an entry, a default value
+ is created instead. For primitive types, that is the regular default value (0, the empty string and so
+ on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length
+ encoded value for the field.
+
+
+ This implementation does not generally prohibit the use of key/value types which are not
+ supported by Protocol Buffers (e.g. using a key type of byte
) but nor does it guarantee
+ that all operations will work in such cases.
+
+
+ The order in which entries are returned when iterating over this object is undefined, and may change
+ in future versions.
+
+
+
+
+
+ Creates a deep clone of this object.
+
+
+ A deep clone of this object.
+
+
+
+
+ Adds the specified key/value pair to the map.
+
+
+ This operation fails if the key already exists in the map. To replace an existing entry, use the indexer.
+
+ The key to add
+ The value to add.
+ The given key already exists in map.
+
+
+
+ Determines whether the specified key is present in the map.
+
+ The key to check.
+ true if the map contains the given key; false otherwise.
+
+
+
+ Removes the entry identified by the given key from the map.
+
+ The key indicating the entry to remove from the map.
+ true if the map contained the given key before the entry was removed; false otherwise.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key whose value to get.
+ When this method returns, the value associated with the specified key, if the key is found;
+ otherwise, the default value for the type of the parameter.
+ This parameter is passed uninitialized.
+ true if the map contains an element with the specified key; otherwise, false.
+
+
+
+ Gets or sets the value associated with the specified key.
+
+ The key of the value to get or set.
+ The property is retrieved and key does not exist in the collection.
+ The value associated with the specified key. If the specified key is not found,
+ a get operation throws a , and a set operation creates a new element with the specified key.
+
+
+
+ Gets a collection containing the keys in the map.
+
+
+
+
+ Gets a collection containing the values in the map.
+
+
+
+
+ Adds the specified entries to the map. The keys and values are not automatically cloned.
+
+ The entries to add to the map.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Adds the specified item to the map.
+
+ The item to add to the map.
+
+
+
+ Removes all items from the map.
+
+
+
+
+ Determines whether map contains an entry equivalent to the given key/value pair.
+
+ The key/value pair to find.
+
+
+
+
+ Copies the key/value pairs in this map to an array.
+
+ The array to copy the entries into.
+ The index of the array at which to start copying values.
+
+
+
+ Removes the specified key/value pair from the map.
+
+ Both the key and the value must be found for the entry to be removed.
+ The key/value pair to remove.
+ true if the key/value pair was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the map.
+
+
+
+
+ Gets a value indicating whether the map is read-only.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this map with another for equality.
+
+
+ The order of the key/value pairs in the maps is not deemed significant in this comparison.
+
+ The map to compare this with.
+ true if refers to an equal map; false otherwise.
+
+
+
+ Adds entries to the map from the given stream.
+
+
+ It is assumed that the stream is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the stream until the end is reached, or
+ a different tag is encountered.
+
+ Stream to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Adds entries to the map from the given parse context.
+
+
+ It is assumed that the input is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the input until the end is reached, or
+ a different tag is encountered.
+
+ Input to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Writes the contents of this map to the given coded output stream, using the specified codec
+ to encode each entry.
+
+ The output stream to write to.
+ The codec to use for each entry.
+
+
+
+ Writes the contents of this map to the given write context, using the specified codec
+ to encode each entry.
+
+ The write context to write to.
+ The codec to use for each entry.
+
+
+
+ Calculates the size of this map based on the given entry codec.
+
+ The codec to use to encode each entry.
+
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ A codec for a specific map field. This contains all the information required to encode and
+ decode the nested messages.
+
+
+
+
+ Creates a new entry codec based on a separate key codec and value codec,
+ and the tag to use for each map entry.
+
+ The key codec.
+ The value codec.
+ The map tag to use to introduce each map entry.
+
+
+
+ The key codec.
+
+
+
+
+ The value codec.
+
+
+
+
+ The tag used in the enclosing message to indicate map entries.
+
+
+
+
+ Provides a central place to implement equality comparisons, primarily for bitwise float/double equality.
+
+
+
+
+ Returns an equality comparer for suitable for Protobuf equality comparisons.
+ This is usually just the default equality comparer for the type, but floating point numbers are compared
+ bitwise.
+
+ The type of equality comparer to return.
+ The equality comparer.
+
+
+
+ Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Read-only wrapper around another dictionary.
+
+
+
+
+ The contents of a repeated field: essentially, a collection with some extra
+ restrictions (no null values) and capabilities (deep cloning).
+
+
+ This implementation does not generally prohibit the use of types which are not
+ supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases.
+
+ The element type of the repeated field.
+
+
+
+ Creates a deep clone of this repeated field.
+
+
+ If the field type is
+ a message type, each element is also cloned; otherwise, it is
+ assumed that the field type is primitive (including string and
+ bytes, both of which are immutable) and so a simple copy is
+ equivalent to a deep clone.
+
+ A deep clone of this repeated field.
+
+
+
+ Adds the entries from the given input stream, decoding them with the specified codec.
+
+ The input stream to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Adds the entries from the given parse context, decoding them with the specified codec.
+
+ The input to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Calculates the size of this collection based on the given codec.
+
+ The codec to use when encoding each field.
+ The number of bytes that would be written to an output by one of the WriteTo methods,
+ using the same codec.
+
+
+
+ Writes the contents of this collection to the given ,
+ encoding each value using the specified codec.
+
+ The output stream to write to.
+ The codec to use when encoding each value.
+
+
+
+ Writes the contents of this collection to the given write context,
+ encoding each value using the specified codec.
+
+ The write context to write to.
+ The codec to use when encoding each value.
+
+
+
+ Gets and sets the capacity of the RepeatedField's internal array. WHen set, the internal array is reallocated to the given capacity.
+ The new value is less than Count -or- when Count is less than 0.
+
+
+
+
+ Adds the specified item to the collection.
+
+ The item to add.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Determines whether this collection contains the given item.
+
+ The item to find.
+ true if this collection contains the given item; false otherwise.
+
+
+
+ Copies this collection to the given array.
+
+ The array to copy to.
+ The first index of the array to copy to.
+
+
+
+ Removes the specified item from the collection
+
+ The item to remove.
+ true if the item was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the collection.
+
+
+
+
+ Gets a value indicating whether the collection is read-only.
+
+
+
+
+ Adds all of the specified values into this collection.
+
+ The values to add to this collection.
+
+
+
+ Adds all of the specified values into this collection. This method is present to
+ allow repeated fields to be constructed from queries within collection initializers.
+ Within non-collection-initializer code, consider using the equivalent
+ method instead for clarity.
+
+ The values to add to this collection.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this repeated field with another for equality.
+
+ The repeated field to compare this with.
+ true if refers to an equal repeated field; false otherwise.
+
+
+
+ Returns the index of the given item within the collection, or -1 if the item is not
+ present.
+
+ The item to find in the collection.
+ The zero-based index of the item, or -1 if it is not found.
+
+
+
+ Inserts the given item at the specified index.
+
+ The index at which to insert the item.
+ The item to insert.
+
+
+
+ Removes the item at the given index.
+
+ The zero-based index of the item to remove.
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ Gets or sets the item at the specified index.
+
+
+ The element at the specified index.
+
+ The zero-based index of the element to get or set.
+ The item at the specified index.
+
+
+
+ Extension methods for , effectively providing
+ the familiar members from previous desktop framework versions while
+ targeting the newer releases, .NET Core etc.
+
+
+
+
+ Returns the public getter of a property, or null if there is no such getter
+ (either because it's read-only, or the getter isn't public).
+
+
+
+
+ Returns the public setter of a property, or null if there is no such setter
+ (either because it's write-only, or the setter isn't public).
+
+
+
+
+ Provides extension methods on Type that just proxy to TypeInfo.
+ These are used to support the new type system from .NET 4.5, without
+ having calls to GetTypeInfo all over the place. While the methods here are meant to be
+ broadly compatible with the desktop framework, there are some subtle differences in behaviour - but
+ they're not expected to affect our use cases. While the class is internal, that should be fine: we can
+ evaluate each new use appropriately.
+
+
+
+
+ See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom
+
+
+
+
+ Returns a representation of the public property associated with the given name in the given type,
+ including inherited properties or null if there is no such public property.
+ Here, "public property" means a property where either the getter, or the setter, or both, is public.
+
+
+
+
+ Returns a representation of the public method associated with the given name in the given type,
+ including inherited methods.
+
+
+ This has a few differences compared with Type.GetMethod in the desktop framework. It will throw
+ if there is an ambiguous match even between a private method and a public one, but it *won't* throw
+ if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and
+ class Child : Base declares public void Foo(long)).
+
+ One type in the hierarchy declared more than one method with the same name
+
+
+
+ Represents a non-generic extension definition. This API is experimental and subject to change.
+
+
+
+
+ Internal use. Creates a new extension with the specified field number.
+
+
+
+
+ Gets the field number of this extension
+
+
+
+
+ Represents a type-safe extension identifier used for getting and setting single extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The field value type of this extension
+
+
+
+ Creates a new extension identifier with the specified field number and codec
+
+
+
+
+ Represents a type-safe extension identifier used for getting repeated extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The repeated field value type of this extension
+
+
+
+ Creates a new repeated extension identifier with the specified field number and codec
+
+
+
+
+ Provides extensions to messages while parsing. This API is experimental and subject to change.
+
+
+
+
+ Creates a new empty extension registry
+
+
+
+
+ Gets the total number of extensions in this extension registry
+
+
+
+
+ Returns whether the registry is readonly
+
+
+
+
+ Adds the specified extension to the registry
+
+
+
+
+ Adds the specified extensions to the registry
+
+
+
+
+ Clears the registry of all values
+
+
+
+
+ Gets whether the extension registry contains the specified extension
+
+
+
+
+ Copies the arrays in the registry set to the specified array at the specified index
+
+ The array to copy to
+ The array index to start at
+
+
+
+ Returns an enumerator to enumerate through the items in the registry
+
+ Returns an enumerator for the extensions in this registry
+
+
+
+ Removes the specified extension from the set
+
+ The extension
+ true if the extension was removed, otherwise false
+
+
+
+ Clones the registry into a new registry
+
+
+
+
+ Methods for managing s with null checking.
+
+ Most users will not use this class directly and its API is experimental and subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if it doesn't exist in this set
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it doesn't exist
+
+
+
+
+ Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null.
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Merges the second set into the first set, creating a new instance if first is null
+
+
+
+
+ Clones the set into a new set. If the set is null, this returns null
+
+
+
+
+ Used for keeping track of extensions in messages.
+ methods route to this set.
+
+ Most users will not need to use this class directly
+
+ The message type that extensions in this set target
+
+
+
+ Gets a hash code of the set
+
+
+
+
+ Returns whether this set is equal to the other object
+
+
+
+
+ Calculates the size of this extension set
+
+
+
+
+ Writes the extension values in this set to the output stream
+
+
+
+
+ Writes the extension values in this set to the write context
+
+
+
+
+ Factory methods for .
+
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a message field with the given tag.
+
+ The tag.
+ A parser to use for the message type.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a group field with the given tag.
+
+ The start group tag.
+ The end group tag.
+ A parser to use for the group message type.
+ A codec for given tag
+
+
+
+ Creates a codec for a wrapper type of a class - which must be string or ByteString.
+
+
+
+
+ Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64,
+ Bool, Single or Double.
+
+
+
+
+ Helper code to create codecs for wrapper types.
+
+
+ Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it
+ slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place,
+ we can refactor later if we come up with something cleaner.
+
+
+
+
+ Returns a field codec which effectively wraps a value of type T in a message.
+
+
+
+
+
+
+ An encode/decode pair for a single field. This effectively encapsulates
+ all the information needed to read or write the field value from/to a coded
+ stream.
+
+
+ This class is public and has to be as it is used by generated code, but its public
+ API is very limited - just what the generated code needs to call directly.
+
+
+
+ This never writes default values to the stream, and does not address "packedness"
+ in repeated fields itself, other than to know whether or not the field *should* be packed.
+
+
+
+
+ Merges an input stream into a value
+
+
+
+
+ Merges a value into a reference to another value, returning a boolean if the value was set
+
+
+
+
+ Returns a delegate to write a value (unconditionally) to a coded output stream.
+
+
+
+
+ Returns the size calculator for just a value.
+
+
+
+
+ Returns a delegate to read a value from a coded input stream. It is assumed that
+ the stream is already positioned on the appropriate tag.
+
+
+
+
+ Returns a delegate to merge a value from a coded input stream.
+ It is assumed that the stream is already positioned on the appropriate tag
+
+
+
+
+ Returns a delegate to merge two values together.
+
+
+
+
+ Returns the fixed size for an entry, or 0 if sizes vary.
+
+
+
+
+ Gets the tag of the codec.
+
+
+ The tag of the codec.
+
+
+
+
+ Gets the end tag of the codec or 0 if there is no end tag
+
+
+ The end tag of the codec.
+
+
+
+
+ Default value for this codec. Usually the same for every instance of the same type, but
+ for string/ByteString wrapper fields the codec's default value is null, whereas for
+ other string/ByteString fields it's "" or ByteString.Empty.
+
+
+ The default value of the codec's type.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Reads a value of the codec type from the given .
+
+ The input stream to read from.
+ The value read from the stream.
+
+
+
+ Reads a value of the codec type from the given .
+
+ The parse context to read from.
+ The value read.
+
+
+
+ Calculates the size required to write the given value, with a tag,
+ if the value is not the default.
+
+
+
+
+ Calculates the size required to write the given value, with a tag, even
+ if the value is the default.
+
+
+
+
+ A tree representation of a FieldMask. Each leaf node in this tree represent
+ a field path in the FieldMask.
+
+ For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be:
+
+ [root] -+- foo -+- bar
+ | |
+ | +- baz
+ |
+ +- bar --- baz
+
+
+ By representing FieldMasks with this tree structure we can easily convert
+ a FieldMask to a canonical form, merge two FieldMasks, calculate the
+ intersection to two FieldMasks and traverse all fields specified by the
+ FieldMask in a message tree.
+
+
+
+
+ Creates an empty FieldMaskTree.
+
+
+
+
+ Creates a FieldMaskTree for a given FieldMask.
+
+
+
+
+ Adds a field path to the tree. In a FieldMask, every field path matches the
+ specified field as well as all its sub-fields. For example, a field path
+ "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding
+ a field path to the tree, redundant sub-paths will be removed. That is,
+ after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it
+ exists, which will turn the tree node for "foo.bar" to a leaf node.
+ Likewise, if the field path to add is a sub-path of an existing leaf node,
+ nothing will be changed in the tree.
+
+
+
+
+ Merges all field paths in a FieldMask into this tree.
+
+
+
+
+ Converts this tree to a FieldMask.
+
+
+
+
+ Gathers all field paths in a sub-tree.
+
+
+
+
+ Adds the intersection of this tree with the given to .
+
+
+
+
+ Merges all fields specified by this FieldMaskTree from to .
+
+
+
+
+ Merges all fields specified by a sub-tree from to .
+
+
+
+
+ Class containing helpful workarounds for various platform compatibility
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ parsing from and writing to .
+
+
+
+
+ Internal implementation of merging data from given parse context into this message.
+ Users should never invoke this method directly.
+
+
+
+
+ Internal implementation of writing this message to a given write context.
+ Users should never invoke this method directly.
+
+
+
+
+ A message type that has a custom string format for diagnostic purposes.
+
+
+
+ Calling on a generated message type normally
+ returns the JSON representation. If a message type implements this interface,
+ then the method will be called instead of the regular
+ JSON formatting code, but only when ToString() is called either on the message itself
+ or on another message which contains it. This does not affect the normal JSON formatting of
+ the message.
+
+
+ For example, if you create a proto message representing a GUID, the internal
+ representation may be a bytes field or four fixed32 fields. However, when debugging
+ it may be more convenient to see a result in the same format as provides.
+
+ This interface extends to avoid it accidentally being implemented
+ on types other than messages, where it would not be used by anything in the framework.
+
+
+
+
+ Returns a string representation of this object, for diagnostic purposes.
+
+
+ This method is called when a message is formatted as part of a
+ call. It does not affect the JSON representation used by other than
+ in calls to . While it is recommended
+ that the result is valid JSON, this is never assumed by the Protobuf library.
+
+ A string representation of this object, for diagnostic purposes.
+
+
+
+ Generic interface for a deeply cloneable type.
+
+
+
+ All generated messages implement this interface, but so do some non-message types.
+ Additionally, due to the type constraint on T in ,
+ it is simpler to keep this as a separate interface.
+
+
+ The type itself, returned by the method.
+
+
+
+ Creates a deep clone of this object.
+
+ A deep clone of this object.
+
+
+
+ Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class.
+ This interface is experiemental and is subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if the extension isn't registered in this set.
+ For a version of this method that never returns null, use
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it hasn't already been registered.
+
+
+
+
+ Sets the value of the specified extension
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified repeated extension
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ basic operations required for serialization.
+
+
+
+
+ Merges the data from the specified coded input stream with the current message.
+
+ See the user guide for precise merge semantics.
+
+
+
+
+ Writes the data to the given coded output stream.
+
+ Coded output stream to write the data to. Must not be null.
+
+
+
+ Calculates the size of this message in Protocol Buffer wire format, in bytes.
+
+ The number of bytes required to write this message
+ to a coded output stream.
+
+
+
+ Descriptor for this message. All instances are expected to return the same descriptor,
+ and for generated types this will be an explicitly-implemented member, returning the
+ same value as the static property declared on the type.
+
+
+
+
+ Generic interface for a Protocol Buffers message,
+ where the type parameter is expected to be the same type as
+ the implementation class.
+
+ The message type.
+
+
+
+ Merges the given message into this one.
+
+ See the user guide for precise merge semantics.
+ The message to merge with this one. Must not be null.
+
+
+
+ Thrown when an attempt is made to parse invalid JSON, e.g. using
+ a non-string property key, or including a redundant comma. Parsing a protocol buffer
+ message represented in JSON using can throw both this
+ exception and depending on the situation. This
+ exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException
+ is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer
+ message.
+
+
+
+
+ Thrown when a protocol message being parsed is invalid in some way,
+ e.g. it contains a malformed varint or a negative byte length.
+
+
+
+
+ Creates an exception for an error condition of an invalid tag being encountered.
+
+
+
+
+ Reflection-based converter from messages to JSON.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON formatting working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ The JSON representation of the first 160 characters of Unicode.
+ Empty strings are replaced by the static constructor.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The formatted message.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The TextWriter to write the formatted message to.
+ The formatted message.
+
+
+
+ Converts a message to JSON for diagnostic purposes with no extra context.
+
+
+
+ This differs from calling on the default JSON
+ formatter in its handling of . As no type registry is available
+ in calls, the normal way of resolving the type of
+ an Any message cannot be applied. Instead, a JSON property named @value
+ is included with the base64 data from the property of the message.
+
+ The value returned by this method is only designed to be used for diagnostic
+ purposes. It may not be parsable by , and may not be parsable
+ by other Protocol Buffer implementations.
+
+ The message to format for diagnostic purposes.
+ The diagnostic-only JSON representation of the message
+
+
+
+ Determines whether or not a field value should be serialized according to the field,
+ its value in the message, and the settings of this formatter.
+
+
+
+
+ Writes a single value to the given writer as JSON. Only types understood by
+ Protocol Buffers can be written in this way. This method is only exposed for
+ advanced use cases; most users should be using
+ or .
+
+ The writer to write the value to. Must not be null.
+ The value to write. May be null.
+
+
+
+ Central interception point for well-known type formatting. Any well-known types which
+ don't need special handling can fall back to WriteMessage. We avoid assuming that the
+ values are using the embedded well-known types, in order to allow for dynamic messages
+ in the future.
+
+
+
+
+ Writes a string (including leading and trailing double quotes) to a builder, escaping as required.
+
+
+ Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc.
+
+
+
+
+ Settings controlling JSON formatting.
+
+
+
+
+ Default settings, as used by
+
+
+
+
+ Whether fields which would otherwise not be included in the formatted data
+ should be formatted even when the value is not present, or has the default value.
+ This option only affects fields which don't support "presence" (e.g.
+ singular non-optional proto3 primitive fields).
+
+
+
+
+ The type registry used to format messages.
+
+
+
+
+ Whether to format enums as ints. Defaults to false.
+
+
+
+
+ Whether to use the original proto field names as defined in the .proto file. Defaults to false.
+
+
+
+
+ Creates a new object with the specified formatting of default values
+ and an empty type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified formatting of default values
+ and type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified parameters.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages. TypeRegistry.Empty will be used if it is null.
+ true to format the enums as integers; false to format enums as enum names.
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Creates a new object with the specified formatting of default values and the current settings.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified type registry and the current settings.
+
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified enums formatting option and the current settings.
+
+ true to format the enums as integers; false to format enums as enum names.
+
+
+
+ Creates a new object with the specified field name formatting option and the current settings.
+
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Reflection-based converter from JSON to messages.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON parsing working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Parses and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ The JSON to parse.
+
+
+
+ Parses JSON read from and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ Reader providing the JSON to parse.
+
+
+
+ Merges the given message using data from the given tokenizer. In most cases, the next
+ token should be a "start object" token, but wrapper types and nullity can invalidate
+ that assumption. This is implemented as an LL(1) recursive descent parser over the stream
+ of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the
+ tokenizer performing that validation - but not every token stream is valid "protobuf JSON".
+
+
+
+
+ Parses into a new message.
+
+ The type of message to create.
+ The JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ The type of message to create.
+ Reader providing the JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses into a new message.
+
+ The JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ Reader providing the JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new instance of the message type for the given field.
+
+
+
+
+ Checks that any infinite/NaN values originated from the correct text.
+ This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the
+ way that Mono parses out-of-range values as infinity.
+
+
+
+
+ Settings controlling JSON parsing.
+
+
+
+
+ Default settings, as used by . This has the same default
+ recursion limit as , and an empty type registry.
+
+
+
+
+ The maximum depth of messages to parse. Note that this limit only applies to parsing
+ messages, not collections - so a message within a collection within a message only counts as
+ depth 2, not 3.
+
+
+
+
+ The type registry used to parse messages.
+
+
+
+
+ Whether the parser should ignore unknown fields (true) or throw an exception when
+ they are encountered (false).
+
+
+
+
+ Creates a new object with the specified recursion limit.
+
+ The maximum depth of messages to parse
+
+
+
+ Creates a new object with the specified recursion limit and type registry.
+
+ The maximum depth of messages to parse
+ The type registry used to parse messages
+
+
+
+ Creates a new object set to either ignore unknown fields, or throw an exception
+ when unknown fields are encountered.
+
+ true if unknown fields should be ignored when parsing; false to throw an exception.
+
+
+
+ Creates a new object based on this one, but with the specified recursion limit.
+
+ The new recursion limit.
+
+
+
+ Creates a new object based on this one, but with the specified type registry.
+
+ The new type registry. Must not be null.
+
+
+
+ Simple but strict JSON tokenizer, rigidly following RFC 7159.
+
+
+
+ This tokenizer is stateful, and only returns "useful" tokens - names, values etc.
+ It does not create tokens for the separator between names and values, or for the comma
+ between values. It validates the token stream as it goes - so callers can assume that the
+ tokens it produces are appropriate. For example, it would never produce "start object, end array."
+
+ Implementation details: the base class handles single token push-back and
+ Not thread-safe.
+
+
+
+
+ Creates a tokenizer that reads from the given text reader.
+
+
+
+
+ Creates a tokenizer that first replays the given list of tokens, then continues reading
+ from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back
+ on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was
+ created for the sake of Any parsing.
+
+
+
+
+ Returns the depth of the stack, purely in objects (not collections).
+ Informally, this is the number of remaining unclosed '{' characters we have.
+
+
+
+
+ Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream,
+ after which point Next() should not be called again.
+
+ This implementation provides single-token buffering, and calls if there is no buffered token.
+ The next token in the stream. This is never null.
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Returns the next JSON token in the stream, when requested by the base class. (The method delegates
+ to this if it doesn't have a buffered token.)
+
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Skips the value we're about to read. This must only be called immediately after reading a property name.
+ If the value is an object or an array, the complete object/array is skipped.
+
+
+
+
+ Tokenizer which first exhausts a list of tokens, then consults another tokenizer.
+
+
+
+
+ Tokenizer which does all the *real* work of parsing JSON.
+
+
+
+
+ This method essentially just loops through characters skipping whitespace, validating and
+ changing state (e.g. from ObjectBeforeColon to ObjectAfterColon)
+ until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point
+ it returns the token. Although the method is large, it would be relatively hard to break down further... most
+ of it is the large switch statement, which sometimes returns and sometimes doesn't.
+
+
+
+
+ Reads a string token. It is assumed that the opening " has already been read.
+
+
+
+
+ Reads an escaped character. It is assumed that the leading backslash has already been read.
+
+
+
+
+ Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read.
+
+
+
+
+ Consumes a text-only literal, throwing an exception if the read text doesn't match it.
+ It is assumed that the first letter of the literal has already been read.
+
+
+
+
+ Validates that we're in a valid state to read a value (using the given error prefix if necessary)
+ and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty.
+
+
+
+
+ Pops the top-most container, and sets the state to the appropriate one for the end of a value
+ in the parent container.
+
+
+
+
+ Possible states of the tokenizer.
+
+
+ This is a flags enum purely so we can simply and efficiently represent a set of valid states
+ for checking.
+
+ Each is documented with an example,
+ where ^ represents the current position within the text stream. The examples all use string values,
+ but could be any value, including nested objects/arrays.
+ The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects).
+ Any additional notional state of "AfterValue" indicates that a value has been completed, at which
+ point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue.
+
+
+ These states were derived manually by reading RFC 7159 carefully.
+
+
+
+
+
+ ^ { "foo": "bar" }
+ Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue"
+
+
+
+
+ { "foo": "bar" } ^
+ After the value in a document. Next states: ReaderExhausted
+
+
+
+
+ { "foo": "bar" } ^ (and already read to the end of the reader)
+ Terminal state.
+
+
+
+
+ { ^ "foo": "bar" }
+ Before the *first* property in an object.
+ Next states:
+ "AfterValue" (empty object)
+ ObjectBeforeColon (read a name)
+
+
+
+
+ { "foo" ^ : "bar", "x": "y" }
+ Next state: ObjectAfterColon
+
+
+
+
+ { "foo" : ^ "bar", "x": "y" }
+ Before any property other than the first in an object.
+ (Equivalently: after any property in an object)
+ Next states:
+ "AfterValue" (value is simple)
+ ObjectStart (value is object)
+ ArrayStart (value is array)
+
+
+
+
+ { "foo" : "bar" ^ , "x" : "y" }
+ At the end of a property, so expecting either a comma or end-of-object
+ Next states: ObjectAfterComma or "AfterValue"
+
+
+
+
+ { "foo":"bar", ^ "x":"y" }
+ Read the comma after the previous property, so expecting another property.
+ This is like ObjectStart, but closing brace isn't valid here
+ Next state: ObjectBeforeColon.
+
+
+
+
+ [ ^ "foo", "bar" ]
+ Before the *first* value in an array.
+ Next states:
+ "AfterValue" (read a value)
+ "AfterValue" (end of array; will pop stack)
+
+
+
+
+ [ "foo" ^ , "bar" ]
+ After any value in an array, so expecting either a comma or end-of-array
+ Next states: ArrayAfterComma or "AfterValue"
+
+
+
+
+ [ "foo", ^ "bar" ]
+ After a comma in an array, so there *must* be another value (simple or complex).
+ Next states: "AfterValue" (simple value), StartObject, StartArray
+
+
+
+
+ Wrapper around a text reader allowing small amounts of buffering and location handling.
+
+
+
+
+ The buffered next character, if we have one.
+
+
+
+
+ Returns the next character in the stream, or null if we have reached the end.
+
+
+
+
+
+ Creates a new exception appropriate for the current state of the reader.
+
+
+
+
+ Stream implementation which proxies another stream, only allowing a certain amount
+ of data to be read. Note that this is only used to read delimited streams, so it
+ doesn't attempt to implement everything.
+
+
+
+
+ Extension methods on and .
+
+
+
+
+ Merges data from the given byte array into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given byte array slice into an existing message.
+
+ The message to merge the data into.
+ The data containing the slice to merge, which must be protobuf-encoded binary data.
+ The offset of the slice to merge.
+ The length of the slice to merge.
+
+
+
+ Merges data from the given byte string into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given stream into an existing message.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given span into an existing message.
+
+ The message to merge the data into.
+ Span containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges length-delimited data from the given stream into an existing message.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Converts the given message into a byte array in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte array.
+
+
+
+ Writes the given message data to the given stream in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the length and then data of the given message to a stream.
+
+ The message to write.
+ The output stream to write to.
+
+
+
+ Converts the given message into a byte string in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte string.
+
+
+
+ Writes the given message data to the given buffer writer in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the given message data to the given span in protobuf encoding.
+ The size of the destination span needs to fit the serialized size
+ of the message exactly, otherwise an exception is thrown.
+
+ The message to write to the stream.
+ The span to write to. Size must match size of the message exactly.
+
+
+
+ Checks if all required fields in a message have values set. For proto3 messages, this returns true
+
+
+
+
+ A general message parser, typically used by reflection-based code as all the methods
+ return simple .
+
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ A parser for a specific message type.
+
+
+
+ This delegates most behavior to the
+ implementation within the original type, but
+ provides convenient overloads to parse from a variety of sources.
+
+
+ Most applications will never need to create their own instances of this type;
+ instead, use the static Parser property of a generated message type to obtain a
+ parser for that type.
+
+
+ The type of message to be parsed.
+
+
+
+ Creates a new parser.
+
+
+ The factory method is effectively an optimization over using a generic constraint
+ to require a parameterless constructor: delegates are significantly faster to execute.
+
+ Function to invoke when a new, empty message is required.
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the
+ extensionByNumber table in ExtensionRegistry.
+
+
+
+
+ An opaque struct that represents the current parsing state and is passed along
+ as the parsing proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Initialize a , building all from defaults and
+ the given .
+
+
+
+
+ Initialize a using existing , e.g. from .
+
+
+
+
+ Creates a ParseContext instance from CodedInputStream.
+ WARNING: internally this copies the CodedInputStream's state, so after done with the ParseContext,
+ the CodedInputStream's state needs to be updated.
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the input.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of input".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputReader; it may be the end of the logical input
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of input. (0 is never a valid tag.)
+
+
+
+ Reads a double field from the input.
+
+
+
+
+ Reads a float field from the input.
+
+
+
+
+ Reads a uint64 field from the input.
+
+
+
+
+ Reads an int64 field from the input.
+
+
+
+
+ Reads an int32 field from the input.
+
+
+
+
+ Reads a fixed64 field from the input.
+
+
+
+
+ Reads a fixed32 field from the input.
+
+
+
+
+ Reads a bool field from the input.
+
+
+
+
+ Reads a string field from the input.
+
+
+
+
+ Reads an embedded message field value from the input.
+
+
+
+
+ Reads an embedded group field from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a uint32 field value from the input.
+
+
+
+
+ Reads an enum field value from the input.
+
+
+
+
+ Reads an sfixed32 field value from the input.
+
+
+
+
+ Reads an sfixed64 field value from the input.
+
+
+
+
+ Reads an sint32 field value from the input.
+
+
+
+
+ Reads an sint64 field value from the input.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ The position within the current buffer (i.e. the next byte to read)
+
+
+
+
+ Size of the current buffer
+
+
+
+
+ If we are currently inside a length-delimited block, this is the number of
+ bytes in the buffer that are still available once we leave the delimited block.
+
+
+
+
+ The absolute position of the end of the current length-delimited block (including totalBytesRetired)
+
+
+
+
+ The total number of consumed before the start of the current buffer. The
+ total bytes read up to the current position can be computed as
+ totalBytesRetired + bufferPos.
+
+
+
+
+ The last tag we read. 0 indicates we've read to the end of the stream
+ (or haven't read anything yet).
+
+
+
+
+ The next tag, used to store the value read by PeekTag.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Primitives for parsing protobuf wire format.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Parses the next tag.
+ If the end of logical stream was reached, an invalid tag of 0 is returned.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Parses a raw varint.
+
+
+
+
+ Parses a raw Varint. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Parses a 32-bit little-endian integer.
+
+
+
+
+ Parses a 64-bit little-endian integer.
+
+
+
+
+ Parses a double value.
+
+
+
+
+ Parses a float value.
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads and discards bytes.
+
+ the end of the stream
+ or the current limit was reached
+
+
+
+ Reads a string field value from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a UTF-8 string from the next "length" bytes.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a string assuming that it is spread across multiple spans in a .
+
+
+
+
+ Validates that the specified size doesn't exceed the current limit. If it does then remaining bytes
+ are skipped and an error is thrown.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Decode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 32 bits to be varint encoded, thus always taking
+ 5 bytes on the wire.)
+
+
+
+
+ Decode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse.
+ When parsing from a Stream this can return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse
+ in the underlying data source.
+ When parsing from a Stream this will return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Read raw bytes of the specified length into a span. The amount of data available and the current limit should
+ be checked before calling this method.
+
+
+
+
+ Reading and skipping messages / groups
+
+
+
+
+ Skip a group.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Fast parsing primitives for wrapper types
+
+
+
+
+ Helper methods for throwing exceptions when preconditions are not met.
+
+
+ This class is used internally and by generated code; it is not particularly
+ expected to be used from application code, although nothing prevents it
+ from being used that way.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+ This is equivalent to but without the type parameter
+ constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
+ with a value type - but it gets in the way if either you want to use it with a nullable
+ value type, or you want to use it with an unconstrained type parameter.
+
+
+
+
+ Container for a set of custom options specified within a message, field etc.
+
+
+
+ This type is publicly immutable, but internally mutable. It is only populated
+ by the descriptor parsing code - by the time any user code is able to see an instance,
+ it will be fully initialized.
+
+
+ If an option is requested using the incorrect method, an answer may still be returned: all
+ of the numeric types are represented internally using 64-bit integers, for example. It is up to
+ the caller to ensure that they make the appropriate method call for the option they're interested in.
+ Note that enum options are simply stored as integers, so the value should be fetched using
+ and then cast appropriately.
+
+
+ Repeated options are currently not supported. Asking for a single value of an option
+ which was actually repeated will return the last value, except for message types where
+ all the set values are merged together.
+
+
+
+
+
+ Retrieves a Boolean value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 32-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 64-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a string value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a bytes value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a message value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+ Holder for reflection information generated from google/protobuf/descriptor.proto
+
+
+ File descriptor for google/protobuf/descriptor.proto
+
+
+
+ The protocol compiler can output a FileDescriptorSet containing the .proto
+ files it parses.
+
+
+
+ Field number for the "file" field.
+
+
+
+ Describes a complete .proto file.
+
+
+
+ Field number for the "name" field.
+
+
+
+ file name, relative to root of source tree
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "package" field.
+
+
+
+ e.g. "foo", "foo.bar", etc.
+
+
+
+ Gets whether the "package" field is set
+
+
+ Clears the value of the "package" field
+
+
+ Field number for the "dependency" field.
+
+
+
+ Names of files imported by this file.
+
+
+
+ Field number for the "public_dependency" field.
+
+
+
+ Indexes of the public imported files in the dependency list above.
+
+
+
+ Field number for the "weak_dependency" field.
+
+
+
+ Indexes of the weak imported files in the dependency list.
+ For Google-internal migration only. Do not use.
+
+
+
+ Field number for the "message_type" field.
+
+
+
+ All top-level definitions in this file.
+
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "service" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "source_code_info" field.
+
+
+
+ This field contains optional information about the original source code.
+ You may safely remove this entire field without harming runtime
+ functionality of the descriptors -- the information is needed only by
+ development tools.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The syntax of the proto file.
+ The supported values are "proto2" and "proto3".
+
+
+
+ Gets whether the "syntax" field is set
+
+
+ Clears the value of the "syntax" field
+
+
+
+ Describes a message type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "field" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "nested_type" field.
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "extension_range" field.
+
+
+ Field number for the "oneof_decl" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved field names, which may not be used by fields in the same message.
+ A given name may only be reserved once.
+
+
+
+ Container for nested types declared in the DescriptorProto message type.
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "options" field.
+
+
+
+ Range of reserved tag numbers. Reserved tag numbers may not be used by
+ fields or extension ranges in the same message. Reserved ranges may
+ not overlap.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+
+ Describes a field within a message.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "label" field.
+
+
+ Gets whether the "label" field is set
+
+
+ Clears the value of the "label" field
+
+
+ Field number for the "type" field.
+
+
+
+ If type_name is set, this need not be set. If both this and type_name
+ are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "type_name" field.
+
+
+
+ For message and enum types, this is the name of the type. If the name
+ starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
+ rules are used to find the type (i.e. first the nested types within this
+ message are searched, then within the parent, on up to the root
+ namespace).
+
+
+
+ Gets whether the "type_name" field is set
+
+
+ Clears the value of the "type_name" field
+
+
+ Field number for the "extendee" field.
+
+
+
+ For extensions, this is the name of the type being extended. It is
+ resolved in the same manner as type_name.
+
+
+
+ Gets whether the "extendee" field is set
+
+
+ Clears the value of the "extendee" field
+
+
+ Field number for the "default_value" field.
+
+
+
+ For numeric types, contains the original text representation of the value.
+ For booleans, "true" or "false".
+ For strings, contains the default text contents (not escaped in any way).
+ For bytes, contains the C escaped value. All bytes >= 128 are escaped.
+
+
+
+ Gets whether the "default_value" field is set
+
+
+ Clears the value of the "default_value" field
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ If set, gives the index of a oneof in the containing type's oneof_decl
+ list. This field is a member of that oneof.
+
+
+
+ Gets whether the "oneof_index" field is set
+
+
+ Clears the value of the "oneof_index" field
+
+
+ Field number for the "json_name" field.
+
+
+
+ JSON name of this field. The value is set by protocol compiler. If the
+ user has set a "json_name" option on this field, that option's value
+ will be used. Otherwise, it's deduced from the field's name by converting
+ it to camelCase.
+
+
+
+ Gets whether the "json_name" field is set
+
+
+ Clears the value of the "json_name" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "proto3_optional" field.
+
+
+
+ If true, this is a proto3 "optional". When a proto3 field is optional, it
+ tracks presence regardless of field type.
+
+ When proto3_optional is true, this field must be belong to a oneof to
+ signal to old proto3 clients that presence is tracked for this field. This
+ oneof is known as a "synthetic" oneof, and this field must be its sole
+ member (each proto3 optional field gets its own synthetic oneof). Synthetic
+ oneofs exist in the descriptor only, and do not generate any API. Synthetic
+ oneofs must be ordered after all "real" oneofs.
+
+ For message fields, proto3_optional doesn't create any semantic change,
+ since non-repeated message fields always track presence. However it still
+ indicates the semantic detail of whether the user wrote "optional" or not.
+ This can be useful for round-tripping the .proto file. For consistency we
+ give message fields a synthetic oneof also, even though it is not required
+ to track presence. This is especially important because the parser can't
+ tell if a field is a message or an enum, so it must always create a
+ synthetic oneof.
+
+ Proto2 optional fields do not set this flag, because they already indicate
+ optional with `LABEL_OPTIONAL`.
+
+
+
+ Gets whether the "proto3_optional" field is set
+
+
+ Clears the value of the "proto3_optional" field
+
+
+ Container for nested types declared in the FieldDescriptorProto message type.
+
+
+
+ 0 is reserved for errors.
+ Order is weird for historical reasons.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
+ negative values are likely.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
+ negative values are likely.
+
+
+
+
+ Tag-delimited aggregate.
+ Group type is deprecated and not supported in proto3. However, Proto3
+ implementations should still be able to parse the group wire format and
+ treat group fields as unknown fields.
+
+
+
+
+ Length-delimited aggregate.
+
+
+
+
+ New in version 2.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ 0 is reserved for errors
+
+
+
+
+ Describes a oneof.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes an enum type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+
+ Range of reserved numeric values. Reserved numeric values may not be used
+ by enum values in the same enum declaration. Reserved ranges may not
+ overlap.
+
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved enum value names, which may not be reused. A given name may only
+ be reserved once.
+
+
+
+ Container for nested types declared in the EnumDescriptorProto message type.
+
+
+
+ Range of reserved numeric values. Reserved values may not be used by
+ entries in the same enum. Reserved ranges may not overlap.
+
+ Note that this is distinct from DescriptorProto.ReservedRange in that it
+ is inclusive such that it can appropriately represent the entire int32
+ domain.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Describes a value within an enum.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "method" field.
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a method of a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "input_type" field.
+
+
+
+ Input and output type names. These are resolved in the same way as
+ FieldDescriptorProto.type_name, but must refer to a message type.
+
+
+
+ Gets whether the "input_type" field is set
+
+
+ Clears the value of the "input_type" field
+
+
+ Field number for the "output_type" field.
+
+
+ Gets whether the "output_type" field is set
+
+
+ Clears the value of the "output_type" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "client_streaming" field.
+
+
+
+ Identifies if client streams multiple client messages
+
+
+
+ Gets whether the "client_streaming" field is set
+
+
+ Clears the value of the "client_streaming" field
+
+
+ Field number for the "server_streaming" field.
+
+
+
+ Identifies if server streams multiple server messages
+
+
+
+ Gets whether the "server_streaming" field is set
+
+
+ Clears the value of the "server_streaming" field
+
+
+ Field number for the "java_package" field.
+
+
+
+ Sets the Java package where classes generated from this .proto will be
+ placed. By default, the proto package is used, but this is often
+ inappropriate because proto packages do not normally start with backwards
+ domain names.
+
+
+
+ Gets whether the "java_package" field is set
+
+
+ Clears the value of the "java_package" field
+
+
+ Field number for the "java_outer_classname" field.
+
+
+
+ Controls the name of the wrapper Java class generated for the .proto file.
+ That class will always contain the .proto file's getDescriptor() method as
+ well as any top-level extensions defined in the .proto file.
+ If java_multiple_files is disabled, then all the other classes from the
+ .proto file will be nested inside the single wrapper outer class.
+
+
+
+ Gets whether the "java_outer_classname" field is set
+
+
+ Clears the value of the "java_outer_classname" field
+
+
+ Field number for the "java_multiple_files" field.
+
+
+
+ If enabled, then the Java code generator will generate a separate .java
+ file for each top-level message, enum, and service defined in the .proto
+ file. Thus, these types will *not* be nested inside the wrapper class
+ named by java_outer_classname. However, the wrapper class will still be
+ generated to contain the file's getDescriptor() method as well as any
+ top-level extensions defined in the file.
+
+
+
+ Gets whether the "java_multiple_files" field is set
+
+
+ Clears the value of the "java_multiple_files" field
+
+
+ Field number for the "java_generate_equals_and_hash" field.
+
+
+
+ This option does nothing.
+
+
+
+ Gets whether the "java_generate_equals_and_hash" field is set
+
+
+ Clears the value of the "java_generate_equals_and_hash" field
+
+
+ Field number for the "java_string_check_utf8" field.
+
+
+
+ If set true, then the Java2 code generator will generate code that
+ throws an exception whenever an attempt is made to assign a non-UTF-8
+ byte sequence to a string field.
+ Message reflection will do the same.
+ However, an extension field still accepts non-UTF-8 byte sequences.
+ This option has no effect on when used with the lite runtime.
+
+
+
+ Gets whether the "java_string_check_utf8" field is set
+
+
+ Clears the value of the "java_string_check_utf8" field
+
+
+ Field number for the "optimize_for" field.
+
+
+ Gets whether the "optimize_for" field is set
+
+
+ Clears the value of the "optimize_for" field
+
+
+ Field number for the "go_package" field.
+
+
+
+ Sets the Go package where structs generated from this .proto will be
+ placed. If omitted, the Go package will be derived from the following:
+ - The basename of the package import path, if provided.
+ - Otherwise, the package statement in the .proto file, if present.
+ - Otherwise, the basename of the .proto file, without extension.
+
+
+
+ Gets whether the "go_package" field is set
+
+
+ Clears the value of the "go_package" field
+
+
+ Field number for the "cc_generic_services" field.
+
+
+
+ Should generic services be generated in each language? "Generic" services
+ are not specific to any particular RPC system. They are generated by the
+ main code generators in each language (without additional plugins).
+ Generic services were the only kind of service generation supported by
+ early versions of google.protobuf.
+
+ Generic services are now considered deprecated in favor of using plugins
+ that generate code specific to your particular RPC system. Therefore,
+ these default to false. Old code which depends on generic services should
+ explicitly set them to true.
+
+
+
+ Gets whether the "cc_generic_services" field is set
+
+
+ Clears the value of the "cc_generic_services" field
+
+
+ Field number for the "java_generic_services" field.
+
+
+ Gets whether the "java_generic_services" field is set
+
+
+ Clears the value of the "java_generic_services" field
+
+
+ Field number for the "py_generic_services" field.
+
+
+ Gets whether the "py_generic_services" field is set
+
+
+ Clears the value of the "py_generic_services" field
+
+
+ Field number for the "php_generic_services" field.
+
+
+ Gets whether the "php_generic_services" field is set
+
+
+ Clears the value of the "php_generic_services" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this file deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for everything in the file, or it will be completely ignored; in the very
+ least, this is a formalization for deprecating files.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "cc_enable_arenas" field.
+
+
+
+ Enables the use of arenas for the proto messages in this file. This applies
+ only to generated classes for C++.
+
+
+
+ Gets whether the "cc_enable_arenas" field is set
+
+
+ Clears the value of the "cc_enable_arenas" field
+
+
+ Field number for the "objc_class_prefix" field.
+
+
+
+ Sets the objective c class prefix which is prepended to all objective c
+ generated classes from this .proto. There is no default.
+
+
+
+ Gets whether the "objc_class_prefix" field is set
+
+
+ Clears the value of the "objc_class_prefix" field
+
+
+ Field number for the "csharp_namespace" field.
+
+
+
+ Namespace for generated classes; defaults to the package.
+
+
+
+ Gets whether the "csharp_namespace" field is set
+
+
+ Clears the value of the "csharp_namespace" field
+
+
+ Field number for the "swift_prefix" field.
+
+
+
+ By default Swift generators will take the proto package and CamelCase it
+ replacing '.' with underscore and use that to prefix the types/symbols
+ defined. When this options is provided, they will use this value instead
+ to prefix the types/symbols defined.
+
+
+
+ Gets whether the "swift_prefix" field is set
+
+
+ Clears the value of the "swift_prefix" field
+
+
+ Field number for the "php_class_prefix" field.
+
+
+
+ Sets the php class prefix which is prepended to all php generated classes
+ from this .proto. Default is empty.
+
+
+
+ Gets whether the "php_class_prefix" field is set
+
+
+ Clears the value of the "php_class_prefix" field
+
+
+ Field number for the "php_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated classes. Default
+ is empty. When this option is empty, the package name will be used for
+ determining the namespace.
+
+
+
+ Gets whether the "php_namespace" field is set
+
+
+ Clears the value of the "php_namespace" field
+
+
+ Field number for the "php_metadata_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated metadata classes.
+ Default is empty. When this option is empty, the proto file name will be
+ used for determining the namespace.
+
+
+
+ Gets whether the "php_metadata_namespace" field is set
+
+
+ Clears the value of the "php_metadata_namespace" field
+
+
+ Field number for the "ruby_package" field.
+
+
+
+ Use this option to change the package of ruby generated classes. Default
+ is empty. When this option is not set, the package name will be used for
+ determining the ruby package.
+
+
+
+ Gets whether the "ruby_package" field is set
+
+
+ Clears the value of the "ruby_package" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here.
+ See the documentation for the "Options" section above.
+
+
+
+ Container for nested types declared in the FileOptions message type.
+
+
+
+ Generated classes can be optimized for speed or code size.
+
+
+
+
+ Generate complete code for parsing, serialization,
+
+
+
+
+ etc.
+
+
+
+
+ Generate code using MessageLite and the lite runtime.
+
+
+
+ Field number for the "message_set_wire_format" field.
+
+
+
+ Set true to use the old proto1 MessageSet wire format for extensions.
+ This is provided for backwards-compatibility with the MessageSet wire
+ format. You should not use this for any other reason: It's less
+ efficient, has fewer features, and is more complicated.
+
+ The message must be defined exactly as follows:
+ message Foo {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+ }
+ Note that the message cannot have any defined fields; MessageSets only
+ have extensions.
+
+ All extensions of your type must be singular messages; e.g. they cannot
+ be int32s, enums, or repeated messages.
+
+ Because this is an option, the above two restrictions are not enforced by
+ the protocol compiler.
+
+
+
+ Gets whether the "message_set_wire_format" field is set
+
+
+ Clears the value of the "message_set_wire_format" field
+
+
+ Field number for the "no_standard_descriptor_accessor" field.
+
+
+
+ Disables the generation of the standard "descriptor()" accessor, which can
+ conflict with a field of the same name. This is meant to make migration
+ from proto1 easier; new code should avoid fields named "descriptor".
+
+
+
+ Gets whether the "no_standard_descriptor_accessor" field is set
+
+
+ Clears the value of the "no_standard_descriptor_accessor" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this message deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the message, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating messages.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "map_entry" field.
+
+
+
+ Whether the message is an automatically generated map entry type for the
+ maps field.
+
+ For maps fields:
+ map<KeyType, ValueType> map_field = 1;
+ The parsed descriptor looks like:
+ message MapFieldEntry {
+ option map_entry = true;
+ optional KeyType key = 1;
+ optional ValueType value = 2;
+ }
+ repeated MapFieldEntry map_field = 1;
+
+ Implementations may choose not to generate the map_entry=true message, but
+ use a native map in the target language to hold the keys and values.
+ The reflection APIs in such implementations still need to work as
+ if the field is a repeated message field.
+
+ NOTE: Do not set the option in .proto files. Always use the maps syntax
+ instead. The option should only be implicitly set by the proto compiler
+ parser.
+
+
+
+ Gets whether the "map_entry" field is set
+
+
+ Clears the value of the "map_entry" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "ctype" field.
+
+
+
+ The ctype option instructs the C++ code generator to use a different
+ representation of the field than it normally would. See the specific
+ options below. This option is not yet implemented in the open source
+ release -- sorry, we'll try to include it in a future version!
+
+
+
+ Gets whether the "ctype" field is set
+
+
+ Clears the value of the "ctype" field
+
+
+ Field number for the "packed" field.
+
+
+
+ The packed option can be enabled for repeated primitive fields to enable
+ a more efficient representation on the wire. Rather than repeatedly
+ writing the tag and type for each element, the entire array is encoded as
+ a single length-delimited blob. In proto3, only explicit setting it to
+ false will avoid using packed encoding.
+
+
+
+ Gets whether the "packed" field is set
+
+
+ Clears the value of the "packed" field
+
+
+ Field number for the "jstype" field.
+
+
+
+ The jstype option determines the JavaScript type used for values of the
+ field. The option is permitted only for 64 bit integral and fixed types
+ (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
+ is represented as JavaScript string, which avoids loss of precision that
+ can happen when a large value is converted to a floating point JavaScript.
+ Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
+ use the JavaScript "number" type. The behavior of the default option
+ JS_NORMAL is implementation dependent.
+
+ This option is an enum to permit additional types to be added, e.g.
+ goog.math.Integer.
+
+
+
+ Gets whether the "jstype" field is set
+
+
+ Clears the value of the "jstype" field
+
+
+ Field number for the "lazy" field.
+
+
+
+ Should this field be parsed lazily? Lazy applies only to message-type
+ fields. It means that when the outer message is initially parsed, the
+ inner message's contents will not be parsed but instead stored in encoded
+ form. The inner message will actually be parsed when it is first accessed.
+
+ This is only a hint. Implementations are free to choose whether to use
+ eager or lazy parsing regardless of the value of this option. However,
+ setting this option true suggests that the protocol author believes that
+ using lazy parsing on this field is worth the additional bookkeeping
+ overhead typically needed to implement it.
+
+ This option does not affect the public interface of any generated code;
+ all method signatures remain the same. Furthermore, thread-safety of the
+ interface is not affected by this option; const methods remain safe to
+ call from multiple threads concurrently, while non-const methods continue
+ to require exclusive access.
+
+ Note that implementations may choose not to check required fields within
+ a lazy sub-message. That is, calling IsInitialized() on the outer message
+ may return true even if the inner message has missing required fields.
+ This is necessary because otherwise the inner message would have to be
+ parsed in order to perform the check, defeating the purpose of lazy
+ parsing. An implementation which chooses not to check required fields
+ must be consistent about it. That is, for any particular sub-message, the
+ implementation must either *always* check its required fields, or *never*
+ check its required fields, regardless of whether or not the message has
+ been parsed.
+
+ As of 2021, lazy does no correctness checks on the byte stream during
+ parsing. This may lead to crashes if and when an invalid byte stream is
+ finally parsed upon access.
+
+ TODO(b/211906113): Enable validation on lazy fields.
+
+
+
+ Gets whether the "lazy" field is set
+
+
+ Clears the value of the "lazy" field
+
+
+ Field number for the "unverified_lazy" field.
+
+
+
+ unverified_lazy does no correctness checks on the byte stream. This should
+ only be used where lazy with verification is prohibitive for performance
+ reasons.
+
+
+
+ Gets whether the "unverified_lazy" field is set
+
+
+ Clears the value of the "unverified_lazy" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this field deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for accessors, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating fields.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "weak" field.
+
+
+
+ For Google-internal migration only. Do not use.
+
+
+
+ Gets whether the "weak" field is set
+
+
+ Clears the value of the "weak" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the FieldOptions message type.
+
+
+
+ Default mode.
+
+
+
+
+ Use the default type.
+
+
+
+
+ Use JavaScript strings.
+
+
+
+
+ Use JavaScript numbers.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "allow_alias" field.
+
+
+
+ Set this option to true to allow mapping different tag names to the same
+ value.
+
+
+
+ Gets whether the "allow_alias" field is set
+
+
+ Clears the value of the "allow_alias" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating enums.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum value deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum value, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating enum values.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this service deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the service, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating services.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this method deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the method, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating methods.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "idempotency_level" field.
+
+
+ Gets whether the "idempotency_level" field is set
+
+
+ Clears the value of the "idempotency_level" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the MethodOptions message type.
+
+
+
+ Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
+ or neither? HTTP based RPC implementation may choose GET verb for safe
+ methods, and PUT verb for idempotent methods instead of the default POST.
+
+
+
+
+ implies idempotent
+
+
+
+
+ idempotent, but may have side effects
+
+
+
+
+ A message representing a option the parser does not recognize. This only
+ appears in options protos created by the compiler::Parser class.
+ DescriptorPool resolves these when building Descriptor objects. Therefore,
+ options protos in descriptor objects (e.g. returned by Descriptor::options(),
+ or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
+ in them.
+
+
+
+ Field number for the "name" field.
+
+
+ Field number for the "identifier_value" field.
+
+
+
+ The value of the uninterpreted option, in whatever type the tokenizer
+ identified it as during parsing. Exactly one of these should be set.
+
+
+
+ Gets whether the "identifier_value" field is set
+
+
+ Clears the value of the "identifier_value" field
+
+
+ Field number for the "positive_int_value" field.
+
+
+ Gets whether the "positive_int_value" field is set
+
+
+ Clears the value of the "positive_int_value" field
+
+
+ Field number for the "negative_int_value" field.
+
+
+ Gets whether the "negative_int_value" field is set
+
+
+ Clears the value of the "negative_int_value" field
+
+
+ Field number for the "double_value" field.
+
+
+ Gets whether the "double_value" field is set
+
+
+ Clears the value of the "double_value" field
+
+
+ Field number for the "string_value" field.
+
+
+ Gets whether the "string_value" field is set
+
+
+ Clears the value of the "string_value" field
+
+
+ Field number for the "aggregate_value" field.
+
+
+ Gets whether the "aggregate_value" field is set
+
+
+ Clears the value of the "aggregate_value" field
+
+
+ Container for nested types declared in the UninterpretedOption message type.
+
+
+
+ The name of the uninterpreted option. Each string represents a segment in
+ a dot-separated name. is_extension is true iff a segment represents an
+ extension (denoted with parentheses in options specs in .proto files).
+ E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
+ "foo.(bar.baz).moo".
+
+
+
+ Field number for the "name_part" field.
+
+
+ Gets whether the "name_part" field is set
+
+
+ Clears the value of the "name_part" field
+
+
+ Field number for the "is_extension" field.
+
+
+ Gets whether the "is_extension" field is set
+
+
+ Clears the value of the "is_extension" field
+
+
+
+ Encapsulates information about the original source file from which a
+ FileDescriptorProto was generated.
+
+
+
+ Field number for the "location" field.
+
+
+
+ A Location identifies a piece of source code in a .proto file which
+ corresponds to a particular definition. This information is intended
+ to be useful to IDEs, code indexers, documentation generators, and similar
+ tools.
+
+ For example, say we have a file like:
+ message Foo {
+ optional string foo = 1;
+ }
+ Let's look at just the field definition:
+ optional string foo = 1;
+ ^ ^^ ^^ ^ ^^^
+ a bc de f ghi
+ We have the following locations:
+ span path represents
+ [a,i) [ 4, 0, 2, 0 ] The whole field definition.
+ [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
+ [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
+ [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
+ [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
+
+ Notes:
+ - A location may refer to a repeated field itself (i.e. not to any
+ particular index within it). This is used whenever a set of elements are
+ logically enclosed in a single code segment. For example, an entire
+ extend block (possibly containing multiple extension definitions) will
+ have an outer location whose path refers to the "extensions" repeated
+ field without an index.
+ - Multiple locations may have the same path. This happens when a single
+ logical declaration is spread out across multiple places. The most
+ obvious example is the "extend" block again -- there may be multiple
+ extend blocks in the same scope, each of which will have the same path.
+ - A location's span is not always a subset of its parent's span. For
+ example, the "extendee" of an extension declaration appears at the
+ beginning of the "extend" block and is shared by all extensions within
+ the block.
+ - Just because a location's span is a subset of some other location's span
+ does not mean that it is a descendant. For example, a "group" defines
+ both a type and a field in a single declaration. Thus, the locations
+ corresponding to the type and field and their components will overlap.
+ - Code which tries to interpret locations should probably be designed to
+ ignore those that it doesn't understand, as more types of locations could
+ be recorded in the future.
+
+
+
+ Container for nested types declared in the SourceCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies which part of the FileDescriptorProto was defined at this
+ location.
+
+ Each element is a field number or an index. They form a path from
+ the root FileDescriptorProto to the place where the definition occurs.
+ For example, this path:
+ [ 4, 3, 2, 7, 1 ]
+ refers to:
+ file.message_type(3) // 4, 3
+ .field(7) // 2, 7
+ .name() // 1
+ This is because FileDescriptorProto.message_type has field number 4:
+ repeated DescriptorProto message_type = 4;
+ and DescriptorProto.field has field number 2:
+ repeated FieldDescriptorProto field = 2;
+ and FieldDescriptorProto.name has field number 1:
+ optional string name = 1;
+
+ Thus, the above path gives the location of a field name. If we removed
+ the last element:
+ [ 4, 3, 2, 7 ]
+ this path refers to the whole field declaration (from the beginning
+ of the label to the terminating semicolon).
+
+
+
+ Field number for the "span" field.
+
+
+
+ Always has exactly three or four elements: start line, start column,
+ end line (optional, otherwise assumed same as start line), end column.
+ These are packed into a single field for efficiency. Note that line
+ and column numbers are zero-based -- typically you will want to add
+ 1 to each before displaying to a user.
+
+
+
+ Field number for the "leading_comments" field.
+
+
+
+ If this SourceCodeInfo represents a complete declaration, these are any
+ comments appearing before and after the declaration which appear to be
+ attached to the declaration.
+
+ A series of line comments appearing on consecutive lines, with no other
+ tokens appearing on those lines, will be treated as a single comment.
+
+ leading_detached_comments will keep paragraphs of comments that appear
+ before (but not connected to) the current element. Each paragraph,
+ separated by empty lines, will be one comment element in the repeated
+ field.
+
+ Only the comment content is provided; comment markers (e.g. //) are
+ stripped out. For block comments, leading whitespace and an asterisk
+ will be stripped from the beginning of each line other than the first.
+ Newlines are included in the output.
+
+ Examples:
+
+ optional int32 foo = 1; // Comment attached to foo.
+ // Comment attached to bar.
+ optional int32 bar = 2;
+
+ optional string baz = 3;
+ // Comment attached to baz.
+ // Another line attached to baz.
+
+ // Comment attached to moo.
+ //
+ // Another line attached to moo.
+ optional double moo = 4;
+
+ // Detached comment for corge. This is not leading or trailing comments
+ // to moo or corge because there are blank lines separating it from
+ // both.
+
+ // Detached comment for corge paragraph 2.
+
+ optional string corge = 5;
+ /* Block comment attached
+ * to corge. Leading asterisks
+ * will be removed. */
+ /* Block comment attached to
+ * grault. */
+ optional int32 grault = 6;
+
+ // ignored detached comments.
+
+
+
+ Gets whether the "leading_comments" field is set
+
+
+ Clears the value of the "leading_comments" field
+
+
+ Field number for the "trailing_comments" field.
+
+
+ Gets whether the "trailing_comments" field is set
+
+
+ Clears the value of the "trailing_comments" field
+
+
+ Field number for the "leading_detached_comments" field.
+
+
+
+ Describes the relationship between generated code and its original source
+ file. A GeneratedCodeInfo message is associated with only one generated
+ source file, but may contain references to different source .proto files.
+
+
+
+ Field number for the "annotation" field.
+
+
+
+ An Annotation connects some span of text in generated code to an element
+ of its generating .proto file.
+
+
+
+ Container for nested types declared in the GeneratedCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies the element in the original source .proto file. This field
+ is formatted the same as SourceCodeInfo.Location.path.
+
+
+
+ Field number for the "source_file" field.
+
+
+
+ Identifies the filesystem path to the original source .proto.
+
+
+
+ Gets whether the "source_file" field is set
+
+
+ Clears the value of the "source_file" field
+
+
+ Field number for the "begin" field.
+
+
+
+ Identifies the starting offset in bytes in the generated code
+ that relates to the identified object.
+
+
+
+ Gets whether the "begin" field is set
+
+
+ Clears the value of the "begin" field
+
+
+ Field number for the "end" field.
+
+
+
+ Identifies the ending offset in bytes in the generated code that
+ relates to the identified offset. The end offset should be one past
+ the last relevant byte (so the length of the text = end - begin).
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Base class for nearly all descriptors, providing common functionality.
+
+
+
+
+ The index of this descriptor within its parent descriptor.
+
+
+ This returns the index of this descriptor within its parent, for
+ this descriptor's type. (There can be duplicate values for different
+ types, e.g. one enum type with index 0 and one message type with index 0.)
+
+
+
+
+ Returns the name of the entity (field, message etc) being described.
+
+
+
+
+ The fully qualified name of the descriptor's target.
+
+
+
+
+ The file this descriptor was declared in.
+
+
+
+
+ The declaration information about the descriptor, or null if no declaration information
+ is available for this descriptor.
+
+
+ This information is typically only available for dynamically loaded descriptors,
+ for example within a protoc plugin where the full descriptors, including source info,
+ are passed to the code by protoc.
+
+
+
+
+ Retrieves the list of nested descriptors corresponding to the given field number, if any.
+ If the field is unknown or not a nested descriptor list, return null to terminate the search.
+ The default implementation returns null.
+
+
+
+
+ Provides additional information about the declaration of a descriptor,
+ such as source location and comments.
+
+
+
+
+ The descriptor this declaration relates to.
+
+
+
+
+ The start line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The start column of the declaration within the source file. This value is 1-based.
+
+
+
+
+ // The end line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The end column of the declaration within the source file. This value is 1-based, and
+ exclusive. (The final character of the declaration is on the column before this value.)
+
+
+
+
+ Comments appearing before the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing after the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing before the declaration, but separated from it by blank
+ lines. Each string represents a newline-separated paragraph of comments.
+ Leading whitespace and the comment marker ("//") are removed from each line.
+ The list is never null, but may be empty. Likewise each element is never null, but may be empty.
+
+
+
+
+ Contains lookup tables containing all the descriptors defined in a particular file.
+
+
+
+
+ Finds a symbol of the given name within the pool.
+
+ The type of symbol to look for
+ Fully-qualified name to look up
+ The symbol with the given name and type,
+ or null if the symbol doesn't exist or has the wrong type
+
+
+
+ Adds a package to the symbol tables. If a package by the same name
+ already exists, that is fine, but if some other kind of symbol
+ exists under the same name, an exception is thrown. If the package
+ has multiple components, this also adds the parent package(s).
+
+
+
+
+ Adds a symbol to the symbol table.
+
+ The symbol already existed
+ in the symbol table.
+
+
+
+ Verifies that the descriptor's name is valid (i.e. it contains
+ only letters, digits and underscores, and does not start with a digit).
+
+
+
+
+
+ Returns the field with the given number in the given descriptor,
+ or null if it can't be found.
+
+
+
+
+ Adds a field to the fieldsByNumber table.
+
+ A field with the same
+ containing type and number already exists.
+
+
+
+ Adds an enum value to the enumValuesByNumber table. If an enum value
+ with the same type and number already exists, this method does nothing.
+ (This is allowed; the first value defined with the number takes precedence.)
+
+
+
+
+ Looks up a descriptor by name, relative to some other descriptor.
+ The name may be fully-qualified (with a leading '.'), partially-qualified,
+ or unqualified. C++-like name lookup semantics are used to search for the
+ matching descriptor.
+
+
+ This isn't heavily optimized, but it's only used during cross linking anyway.
+ If it starts being used more widely, we should look at performance more carefully.
+
+
+
+
+ Internal class containing utility methods when working with descriptors.
+
+
+
+
+ Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
+ arrays.
+
+
+
+
+ Converts the given array into a read-only list, applying the specified conversion to
+ each input element.
+
+
+
+
+ Thrown when building descriptors fails because the source DescriptorProtos
+ are not valid.
+
+
+
+
+ The full name of the descriptor where the error occurred.
+
+
+
+
+ A human-readable description of the error. (The Message property
+ is made up of the descriptor's name and this description.)
+
+
+
+
+ Descriptor for an enum type in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ The CLR type for this enum. For generated code, this will be a CLR enum type.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ An unmodifiable list of defined value descriptors for this enum.
+
+
+
+
+ Finds an enum value by number. If multiple enum values have the
+ same number, this returns the first defined value with that number.
+ If there is no value for the given number, this returns null.
+
+
+
+
+ Finds an enum value by name.
+
+ The unqualified name of the value (e.g. "FOO").
+ The value's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this enum.
+
+
+
+
+ The EnumOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum option for this descriptor
+
+
+
+
+ Gets a repeated value enum option for this descriptor
+
+
+
+
+ Descriptor for a single enum value within an enum in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum value.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum value descriptor.
+
+
+
+ Returns the name of the enum value described by this object.
+
+
+
+
+ Returns the number associated with this enum value.
+
+
+
+
+ Returns the enum descriptor that this value is part of.
+
+
+
+
+ The (possibly empty) set of custom options for this enum value.
+
+
+
+
+ The EnumValueOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum value option for this descriptor
+
+
+
+
+ Gets a repeated value enum value option for this descriptor
+
+
+
+
+ A collection to simplify retrieving the descriptors of extensions in a descriptor for a message
+
+
+
+
+ Returns a readonly list of all the extensions defined in this type in
+ the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in ascending field order
+
+
+
+
+ Base class for field accessors.
+
+
+
+
+ Descriptor for a field or extension within a message in a .proto file.
+
+
+
+
+ Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension.
+
+
+
+
+ Returns the oneof containing this field, or null if it is not part of a oneof.
+
+
+
+
+ Returns the oneof containing this field if it's a "real" oneof, or null if either this
+ field is not part of a oneof, or the oneof is synthetic.
+
+
+
+
+ The effective JSON name for this field. This is usually the lower-camel-cased form of the field name,
+ but can be overridden using the json_name option in the .proto file.
+
+
+
+
+ The name of the property in the ContainingType.ClrType class.
+
+
+
+
+ Indicates whether this field supports presence, either implicitly (e.g. due to it being a message
+ type field) or explicitly via Has/Clear members. If this returns true, it is safe to call
+ and
+ on this field's accessor with a suitable message.
+
+
+
+
+ Returns a clone of the underlying describing this field.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this field descriptor.
+
+
+
+ An extension identifier for this field, or null if this field isn't an extension.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns the accessor for this field.
+
+
+
+ While a describes the field, it does not provide
+ any way of obtaining or changing the value of the field within a specific message;
+ that is the responsibility of the accessor.
+
+
+ In descriptors for generated code, the value returned by this property will be non-null for all
+ regular fields. However, if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, and the value of the map field itself is represented by a dictionary in the
+ reflection API. There are never instances of those "hidden" messages, so no accessor is provided
+ and this property will return null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+
+
+ Maps a field type as included in the .proto file to a FieldType.
+
+
+
+
+ Returns true if this field is a repeated field; false otherwise.
+
+
+
+
+ Returns true if this field is a required field; false otherwise.
+
+
+
+
+ Returns true if this field is a map field; false otherwise.
+
+
+
+
+ Returns true if this field is a packed, repeated field; false otherwise.
+
+
+
+
+ Returns true if this field extends another message type; false otherwise.
+
+
+
+
+ Returns the type of the field.
+
+
+
+
+ Returns the field number declared in the proto file.
+
+
+
+
+ Compares this descriptor with another one, ordering in "canonical" order
+ which simply means ascending order by field number.
+ must be a field of the same type, i.e. the of
+ both fields must be the same.
+
+
+
+
+ For enum fields, returns the field's type.
+
+
+
+
+ For embedded message and group fields, returns the field's type.
+
+
+
+
+ For extension fields, returns the extended type
+
+
+
+
+ The (possibly empty) set of custom options for this field.
+
+
+
+
+ The FieldOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value field option for this descriptor
+
+
+
+
+ Gets a repeated value field option for this descriptor
+
+
+
+
+ Look up and cross-link all field types etc.
+
+
+
+
+ Enumeration of all the possible field types.
+
+
+
+
+ The double field type.
+
+
+
+
+ The float field type.
+
+
+
+
+ The int64 field type.
+
+
+
+
+ The uint64 field type.
+
+
+
+
+ The int32 field type.
+
+
+
+
+ The fixed64 field type.
+
+
+
+
+ The fixed32 field type.
+
+
+
+
+ The bool field type.
+
+
+
+
+ The string field type.
+
+
+
+
+ The field type used for groups.
+
+
+
+
+ The field type used for message fields.
+
+
+
+
+ The bytes field type.
+
+
+
+
+ The uint32 field type.
+
+
+
+
+ The sfixed32 field type.
+
+
+
+
+ The sfixed64 field type.
+
+
+
+
+ The sint32 field type.
+
+
+
+
+ The sint64 field type.
+
+
+
+
+ The field type used for enum fields.
+
+
+
+
+ The syntax of a .proto file
+
+
+
+
+ Proto2 syntax
+
+
+
+
+ Proto3 syntax
+
+
+
+
+ An unknown declared syntax
+
+
+
+
+ Describes a .proto file, including everything defined within.
+ IDescriptor is implemented such that the File property returns this descriptor,
+ and the FullName is the same as the Name.
+
+
+
+
+ Computes the full name of a descriptor within this file, with an optional parent message.
+
+
+
+
+ Extracts public dependencies from direct dependencies. This is a static method despite its
+ first parameter, as the value we're in the middle of constructing is only used for exceptions.
+
+
+
+
+ The descriptor in its protocol message representation.
+
+
+
+
+ Returns a clone of the underlying describing this file.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this file descriptor.
+
+
+
+ The syntax of the file
+
+
+
+
+ The file name.
+
+
+
+
+ The package as declared in the .proto file. This may or may not
+ be equivalent to the .NET namespace of the generated classes.
+
+
+
+
+ Unmodifiable list of top-level message types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level enum types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level services declared in this file.
+
+
+
+
+ Unmodifiable list of top-level extensions declared in this file.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if this descriptor was generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ Unmodifiable list of this file's dependencies (imports).
+
+
+
+
+ Unmodifiable list of this file's public dependencies (public imports).
+
+
+
+
+ The original serialized binary form of this descriptor.
+
+
+
+
+ Implementation of IDescriptor.FullName - just returns the same as Name.
+
+
+
+
+ Implementation of IDescriptor.File - just returns this descriptor.
+
+
+
+
+ Pool containing symbol descriptors.
+
+
+
+
+ Finds a type (message, enum, service or extension) in the file by name. Does not find nested types.
+
+ The unqualified type name to look for.
+ The type of descriptor to look for
+ The type's descriptor, or null if not found.
+
+
+
+ Builds a FileDescriptor from its protocol buffer representation.
+
+ The original serialized descriptor data.
+ We have only limited proto2 support, so serializing FileDescriptorProto
+ would not necessarily give us this.
+ The protocol message form of the FileDescriptor.
+ FileDescriptors corresponding to all of the
+ file's dependencies, in the exact order listed in the .proto file. May be null,
+ in which case it is treated as an empty array.
+ Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).
+ Details about generated code, for the purposes of reflection.
+ If is not
+ a valid descriptor. This can occur for a number of reasons, such as a field
+ having an undefined type or because two messages were defined with the same name.
+
+
+
+ Creates a descriptor for generated code.
+
+
+ This method is only designed to be used by the results of generating code with protoc,
+ which creates the appropriate dependencies etc. It has to be public because the generated
+ code is "external", but should not be called directly by end users.
+
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The extension registry to use when parsing, or null if no extensions are required.
+ The file descriptors corresponding to .
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The file descriptors corresponding to .
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns the file descriptor for descriptor.proto.
+
+
+ This is used for protos which take a direct dependency on descriptor.proto, typically for
+ annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf
+ runtime for reflection purposes. The messages are internal to the runtime as they would require
+ proto2 semantics for full support, but the file descriptor is available via this property. The
+ C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto.
+
+
+ The file descriptor for descriptor.proto.
+
+
+
+
+ The (possibly empty) set of custom options for this file.
+
+
+
+
+ The FileOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value file option for this descriptor
+
+
+
+
+ Gets a repeated value file option for this descriptor
+
+
+
+
+ Performs initialization for the given generic type argument.
+
+
+ This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated)
+ to make calls into the reflection machinery of this library to express an intention to use that type
+ reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers
+ attempting to determine which generic type arguments need to be handled will spot the code path and act
+ accordingly.
+
+ The type to force initialization for.
+
+
+
+ Extra information provided by generated code when initializing a message or file descriptor.
+ These are constructed as required, and are not long-lived. Hand-written code should
+ never need to use this type.
+
+
+
+
+ Irrelevant for file descriptors; the CLR type for the message for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the parser for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the CLR property names (in message descriptor field order)
+ for fields in the message for message descriptors.
+
+
+
+
+ The extensions defined within this file/message descriptor
+
+
+
+
+ Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order)
+ for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo",
+ there will be a "FooCase" property and a "ClearFoo" method.
+
+
+
+
+ The reflection information for types within this file/message descriptor. Elements may be null
+ if there is no corresponding generated type, e.g. for map entry types.
+
+
+
+
+ The CLR types for enums within this file/message descriptor.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums.
+
+
+
+
+ Interface implemented by all descriptor types.
+
+
+
+
+ Returns the name of the entity (message, field etc) being described.
+
+
+
+
+ Returns the fully-qualified name of the entity being described.
+
+
+
+
+ Returns the descriptor for the .proto file that this entity is part of.
+
+
+
+
+ Allows fields to be reflectively accessed.
+
+
+
+
+ Returns the descriptor associated with this field.
+
+
+
+
+ Clears the field in the specified message. (For repeated fields,
+ this clears the list.)
+
+
+
+
+ Fetches the field value. For repeated values, this will be an
+ implementation. For map values, this will be an
+ implementation.
+
+
+
+
+ Indicates whether the field in the specified message is set.
+ For proto3 fields that aren't explicitly optional, this throws an
+
+
+
+
+ Mutator for single "simple" fields only.
+
+
+ Repeated fields are mutated by fetching the value and manipulating it as a list.
+ Map fields are mutated by fetching the value and manipulating it as a dictionary.
+
+ The field is not a "simple" field.
+
+
+
+ Accessor for map fields.
+
+
+
+
+ Describes a message type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this message.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this message descriptor.
+
+
+
+ The CLR type used to represent message instances from this descriptor.
+
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the type returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ A parser for this message type.
+
+
+
+ As is not generic, this cannot be statically
+ typed to the relevant type, but it should produce objects of a type compatible with .
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. No message parser object is created for
+ such messages, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the parser returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ Returns whether this message is one of the "well known types" which may have runtime/protoc support.
+
+
+
+
+ Returns whether this message is one of the "wrapper types" used for fields which represent primitive values
+ with the addition of presence.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ A collection of fields, which can be retrieved by name or field number.
+
+
+
+
+ An unmodifiable list of extensions defined in this message's scope.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if they are declared in a file generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ An unmodifiable list of this message type's nested types.
+
+
+
+
+ An unmodifiable list of this message type's enum types.
+
+
+
+
+ An unmodifiable list of the "oneof" field collections in this message type.
+ All "real" oneofs (where returns false)
+ come before synthetic ones.
+
+
+
+
+ The number of real "oneof" descriptors in this message type. Every element in
+ with an index less than this will have a property value
+ of false; every element with an index greater than or equal to this will have a
+ property value of true.
+
+
+
+
+ Finds a field by field name.
+
+ The unqualified name of the field (e.g. "foo").
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a field by field number.
+
+ The field number within this message type.
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a nested descriptor by name. The is valid for fields, nested
+ message types, oneofs and enums.
+
+ The unqualified name of the descriptor, e.g. "Foo"
+ The descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this message.
+
+
+
+
+ The MessageOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value message option for this descriptor
+
+
+
+
+ Gets a repeated value message option for this descriptor
+
+
+
+
+ Looks up and cross-links all fields and nested types.
+
+
+
+
+ A collection to simplify retrieving the field accessor for a particular field.
+
+
+
+
+ Returns the fields in the message as an immutable list, in the order in which they
+ are declared in the source .proto file.
+
+
+
+
+ Returns the fields in the message as an immutable list, in ascending field number
+ order. Field numbers need not be contiguous, so there is no direct mapping from the
+ index in the list to the field number; to retrieve a field by field number, it is better
+ to use the indexer.
+
+
+
+
+ Returns a read-only dictionary mapping the field names in this message as they're available
+ in the JSON representation to the field descriptors. For example, a field foo_bar
+ in the message would result two entries, one with a key fooBar and one with a key
+ foo_bar, both referring to the same field.
+
+
+
+
+ Retrieves the descriptor for the field with the given number.
+
+ Number of the field to retrieve the descriptor for
+ The accessor for the given field
+ The message descriptor does not contain a field
+ with the given number
+
+
+
+ Retrieves the descriptor for the field with the given name.
+
+ Name of the field to retrieve the descriptor for
+ The descriptor for the given field
+ The message descriptor does not contain a field
+ with the given name
+
+
+
+ Describes a single method in a service.
+
+
+
+
+ The service this method belongs to.
+
+
+
+
+ The method's input type.
+
+
+
+
+ The method's input type.
+
+
+
+
+ Indicates if client streams multiple requests.
+
+
+
+
+ Indicates if server streams multiple responses.
+
+
+
+
+ The (possibly empty) set of custom options for this method.
+
+
+
+
+ The MethodOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value method option for this descriptor
+
+
+
+
+ Gets a repeated value method option for this descriptor
+
+
+
+
+ Returns a clone of the underlying describing this method.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this method descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Reflection access for a oneof, allowing clear and "get case" actions.
+
+
+
+
+ Gets the descriptor for this oneof.
+
+
+ The descriptor of the oneof.
+
+
+
+
+ Clears the oneof in the specified message.
+
+
+
+
+ Indicates which field in the oneof is set for specified message
+
+
+
+
+ Describes a "oneof" field collection in a message type: a set of
+ fields of which at most one can be set in any particular message.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this oneof.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this oneof descriptor.
+
+
+
+ Gets the message type containing this oneof.
+
+
+ The message type containing this oneof.
+
+
+
+
+ Gets the fields within this oneof, in declaration order.
+
+
+ The fields within this oneof, in declaration order.
+
+
+
+
+ Returns true if this oneof is a synthetic oneof containing a proto3 optional field;
+ false otherwise.
+
+
+
+
+ Gets an accessor for reflective access to the values associated with the oneof
+ in a particular message.
+
+
+
+ In descriptors for generated code, the value returned by this property will always be non-null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+ The accessor used for reflective access.
+
+
+
+
+ The (possibly empty) set of custom options for this oneof.
+
+
+
+
+ The OneofOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value oneof option for this descriptor
+
+
+
+
+ Gets a repeated value oneof option for this descriptor
+
+
+
+
+ Specifies the original name (in the .proto file) of a named element,
+ such as an enum value.
+
+
+
+
+ The name of the element in the .proto file.
+
+
+
+
+ If the name is preferred in the .proto file.
+
+
+
+
+ Constructs a new attribute instance for the given name.
+
+ The name of the element in the .proto file.
+
+
+
+ Represents a package in the symbol table. We use PackageDescriptors
+ just as placeholders so that someone cannot define, say, a message type
+ that has the same name as an existing package.
+
+
+
+
+ The methods in this class are somewhat evil, and should not be tampered with lightly.
+ Basically they allow the creation of relatively weakly typed delegates from MethodInfos
+ which are more strongly typed. They do this by creating an appropriate strongly typed
+ delegate from the MethodInfo, and then calling that within an anonymous method.
+ Mind-bending stuff (at least to your humble narrator) but the resulting delegates are
+ very fast compared with calling Invoke later on.
+
+
+
+
+ Empty Type[] used when calling GetProperty to force property instead of indexer fetching.
+
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to object.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to the specified type. The method is expected
+ to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that
+ means we need some extra work to perform conversions.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ type that declares the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+
+
+
+ Creates a reflection helper for the given type arguments. Currently these are created on demand
+ rather than cached; this will be "busy" when initially loading a message's descriptor, but after that
+ they can be garbage collected. We could cache them by type if that proves to be important, but creating
+ an object is pretty cheap.
+
+
+
+
+ Accessor for repeated fields.
+
+
+
+
+ Describes a service type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this service.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this service descriptor.
+
+
+
+ An unmodifiable list of methods in this service.
+
+
+
+
+ Finds a method by name.
+
+ The unqualified name of the method (e.g. "Foo").
+ The method's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this service.
+
+
+
+
+ The ServiceOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value service option for this descriptor
+
+
+
+
+ Gets a repeated value service option for this descriptor
+
+
+
+
+ Accessor for single fields.
+
+
+
+
+ An immutable registry of types which can be looked up by their full name.
+
+
+
+
+ An empty type registry, containing no types.
+
+
+
+
+ Attempts to find a message descriptor by its full name.
+
+ The full name of the message, which is the dot-separated
+ combination of package, containing messages and message name
+ The message descriptor corresponding to or null
+ if there is no such message descriptor.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ All message types within all the specified files are added to the registry, and
+ the dependencies of the specified files are also added, recursively.
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ The specified message descriptors are only used to identify their file descriptors; the returned registry
+ contains all the types within the file descriptors which contain the specified message descriptors (and
+ the dependencies of those files), not just the specified messages.
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls.
+
+
+
+
+ Abstraction for reading from a stream / read only sequence.
+ Parsing from the buffer is a loop of reading from current buffer / refreshing the buffer once done.
+
+
+
+
+ Initialize an instance with a coded input stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a read only sequence.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Represents a single field in an UnknownFieldSet.
+
+ An UnknownField consists of four lists of values. The lists correspond
+ to the four "wire types" used in the protocol buffer binary format.
+ Normally, only one of the four lists will contain any values, since it
+ is impossible to define a valid message type that declares two different
+ types for the same field number. However, the code is designed to allow
+ for the case where the same unknown field number is encountered using
+ multiple different wire types.
+
+
+
+
+
+ Creates a new UnknownField.
+
+
+
+
+ Checks if two unknown field are equal.
+
+
+
+
+ Get the hash code of the unknown field.
+
+
+
+
+ Serializes the field, including the field number, and writes it to
+
+
+ The unknown field number.
+ The write context to write to.
+
+
+
+ Computes the number of bytes required to encode this field, including field
+ number.
+
+
+
+
+ Merge the values in into this field. For each list
+ of values, 's values are append to the ones in this
+ field.
+
+
+
+
+ Returns a new list containing all of the given specified values from
+ both the and lists.
+ If is null and is null or empty,
+ null is returned. Otherwise, either a new list is created (if
+ is null) or the elements of are added to .
+
+
+
+
+ Adds a varint value.
+
+
+
+
+ Adds a fixed32 value.
+
+
+
+
+ Adds a fixed64 value.
+
+
+
+
+ Adds a length-delimited value.
+
+
+
+
+ Adds to the , creating
+ a new list if is null. The list is returned - either
+ the original reference or the new list.
+
+
+
+
+ Used to keep track of fields which were seen when parsing a protocol message
+ but whose field numbers or types are unrecognized. This most frequently
+ occurs when new fields are added to a message type and then messages containing
+ those fields are read by old software that was built before the new types were
+ added.
+
+ Most users will never need to use this class directly.
+
+
+
+
+ Creates a new UnknownFieldSet.
+
+
+
+
+ Checks whether or not the given field number is present in the set.
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Gets the number of bytes required to encode this set.
+
+
+
+
+ Checks if two unknown field sets are equal.
+
+
+
+
+ Gets the unknown field set's hash code.
+
+
+
+
+ Adds a field to the set. If a field with the same number already exists, it
+ is replaced.
+
+
+
+
+ Parse a single field from and merge it
+ into this set.
+
+ The parse context from which to read the field
+ false if the tag is an "end group" tag, true otherwise
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The coded input stream containing the field
+ The merged UnknownFieldSet
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The parse context from which to read the field
+ The merged UnknownFieldSet
+
+
+
+ Merges the fields from into this set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Created a new UnknownFieldSet to if
+ needed and merges the fields from into the first set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Adds a field to the unknown field set. If a field with the same
+ number already exists, the two are merged.
+
+
+
+
+ Clone an unknown field set from .
+
+
+
+
+ Provides a number of unsafe byte operations to be used by advanced applications with high performance
+ requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose
+ the backing buffer of a to the application.
+
+
+
+ The methods in this class should only be called if it is guaranteed that the buffer backing the
+ will never change! Mutation of a can lead to unexpected
+ and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution!
+
+
+ This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In
+ particular, if the bytes value changes out from under a Protocol Buffer:
+
+
+ -
+ serialization may throw
+
+ -
+ serialization may succeed but the wrong bytes may be written out
+
+ -
+ objects that are normally immutable (such as ByteString) are no longer immutable
+
+ -
+ hashCode may be incorrect
+
+
+
+
+
+
+ Constructs a new from the given bytes. The bytes are not copied,
+ and must not be modified while the is in use.
+ This API is experimental and subject to change.
+
+
+
+ Holder for reflection information generated from google/protobuf/any.proto
+
+
+ File descriptor for google/protobuf/any.proto
+
+
+
+ `Any` contains an arbitrary serialized protocol buffer message along with a
+ URL that describes the type of the serialized message.
+
+ Protobuf library provides support to pack/unpack Any values in the form
+ of utility functions or additional generated methods of the Any type.
+
+ Example 1: Pack and unpack a message in C++.
+
+ Foo foo = ...;
+ Any any;
+ any.PackFrom(foo);
+ ...
+ if (any.UnpackTo(&foo)) {
+ ...
+ }
+
+ Example 2: Pack and unpack a message in Java.
+
+ Foo foo = ...;
+ Any any = Any.pack(foo);
+ ...
+ if (any.is(Foo.class)) {
+ foo = any.unpack(Foo.class);
+ }
+
+ Example 3: Pack and unpack a message in Python.
+
+ foo = Foo(...)
+ any = Any()
+ any.Pack(foo)
+ ...
+ if any.Is(Foo.DESCRIPTOR):
+ any.Unpack(foo)
+ ...
+
+ Example 4: Pack and unpack a message in Go
+
+ foo := &pb.Foo{...}
+ any, err := anypb.New(foo)
+ if err != nil {
+ ...
+ }
+ ...
+ foo := &pb.Foo{}
+ if err := any.UnmarshalTo(foo); err != nil {
+ ...
+ }
+
+ The pack methods provided by protobuf library will by default use
+ 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ methods only use the fully qualified type name after the last '/'
+ in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ name "y.z".
+
+ JSON
+
+ The JSON representation of an `Any` value uses the regular
+ representation of the deserialized, embedded message, with an
+ additional field `@type` which contains the type URL. Example:
+
+ package google.profile;
+ message Person {
+ string first_name = 1;
+ string last_name = 2;
+ }
+
+ {
+ "@type": "type.googleapis.com/google.profile.Person",
+ "firstName": <string>,
+ "lastName": <string>
+ }
+
+ If the embedded message type is well-known and has a custom JSON
+ representation, that representation will be embedded adding a field
+ `value` which holds the custom JSON in addition to the `@type`
+ field. Example (for message [google.protobuf.Duration][]):
+
+ {
+ "@type": "type.googleapis.com/google.protobuf.Duration",
+ "value": "1.212s"
+ }
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ A URL/resource name that uniquely identifies the type of the serialized
+ protocol buffer message. This string must contain at least
+ one "/" character. The last segment of the URL's path must represent
+ the fully qualified name of the type (as in
+ `path/google.protobuf.Duration`). The name should be in a canonical form
+ (e.g., leading "." is not accepted).
+
+ In practice, teams usually precompile into the binary all types that they
+ expect it to use in the context of Any. However, for URLs which use the
+ scheme `http`, `https`, or no scheme, one can optionally set up a type
+ server that maps type URLs to message definitions as follows:
+
+ * If no scheme is provided, `https` is assumed.
+ * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ value in binary format, or produce an error.
+ * Applications are allowed to cache lookup results based on the
+ URL, or have them precompiled into a binary to avoid any
+ lookup. Therefore, binary compatibility needs to be preserved
+ on changes to types. (Use versioned type names to manage
+ breaking changes.)
+
+ Note: this functionality is not currently available in the official
+ protobuf release, and it is not used for type URLs beginning with
+ type.googleapis.com.
+
+ Schemes other than `http`, `https` (or the empty scheme) might be
+ used with implementation specific semantics.
+
+
+
+ Field number for the "value" field.
+
+
+
+ Must be a valid serialized protocol buffer of the above specified type.
+
+
+
+
+ Retrieves the type name for a type URL, matching the
+ of the packed message type.
+
+
+
+ This is always just the last part of the URL, after the final slash. No validation of
+ anything before the trailing slash is performed. If the type URL does not include a slash,
+ an empty string is returned rather than an exception being thrown; this won't match any types,
+ and the calling code is probably in a better position to give a meaningful error.
+
+
+ There is no handling of fragments or queries at the moment.
+
+
+ The URL to extract the type name from
+ The type name
+
+
+
+ Returns a bool indictating whether this Any message is of the target message type
+
+ The descriptor of the message type
+ true if the type name matches the descriptor's full name or false otherwise
+
+
+
+ Unpacks the content of this Any message into the target message type,
+ which must match the type URL within this Any message.
+
+ The type of message to unpack the content into.
+ The unpacked message.
+ The target message type doesn't match the type URL in this message
+
+
+
+ Attempts to unpack the content of this Any message into the target message type,
+ if it matches the type URL within this Any message.
+
+ The type of message to attempt to unpack the content into.
+ true if the message was successfully unpacked; false if the type name didn't match
+
+
+
+ Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com".
+
+ The message to pack.
+ An Any message with the content and type URL of .
+
+
+
+ Packs the specified message into an Any message using the specified type URL prefix.
+
+ The message to pack.
+ The prefix for the type URL.
+ An Any message with the content and type URL of .
+
+
+ Holder for reflection information generated from google/protobuf/api.proto
+
+
+ File descriptor for google/protobuf/api.proto
+
+
+
+ Api is a light-weight descriptor for an API Interface.
+
+ Interfaces are also described as "protocol buffer services" in some contexts,
+ such as by the "service" keyword in a .proto file, but they are different
+ from API Services, which represent a concrete implementation of an interface
+ as opposed to simply a description of methods and bindings. They are also
+ sometimes simply referred to as "APIs" in other contexts, such as the name of
+ this message itself. See https://cloud.google.com/apis/design/glossary for
+ detailed terminology.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of this interface, including package name
+ followed by the interface's simple name.
+
+
+
+ Field number for the "methods" field.
+
+
+
+ The methods of this interface, in unspecified order.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the interface.
+
+
+
+ Field number for the "version" field.
+
+
+
+ A version string for this interface. If specified, must have the form
+ `major-version.minor-version`, as in `1.10`. If the minor version is
+ omitted, it defaults to zero. If the entire version field is empty, the
+ major version is derived from the package name, as outlined below. If the
+ field is not empty, the version in the package name will be verified to be
+ consistent with what is provided here.
+
+ The versioning schema uses [semantic
+ versioning](http://semver.org) where the major version number
+ indicates a breaking change and the minor version an additive,
+ non-breaking change. Both version numbers are signals to users
+ what to expect from different versions, and should be carefully
+ chosen based on the product plan.
+
+ The major version is also reflected in the package name of the
+ interface, which must end in `v<major-version>`, as in
+ `google.feature.v1`. For major versions 0 and 1, the suffix can
+ be omitted. Zero major versions must only be used for
+ experimental, non-GA interfaces.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ Source context for the protocol buffer service represented by this
+ message.
+
+
+
+ Field number for the "mixins" field.
+
+
+
+ Included interfaces. See [Mixin][].
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of the service.
+
+
+
+
+ Method represents a method of an API interface.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The simple name of this method.
+
+
+
+ Field number for the "request_type_url" field.
+
+
+
+ A URL of the input message type.
+
+
+
+ Field number for the "request_streaming" field.
+
+
+
+ If true, the request is streamed.
+
+
+
+ Field number for the "response_type_url" field.
+
+
+
+ The URL of the output message type.
+
+
+
+ Field number for the "response_streaming" field.
+
+
+
+ If true, the response is streamed.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the method.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of this method.
+
+
+
+
+ Declares an API Interface to be included in this interface. The including
+ interface must redeclare all the methods from the included interface, but
+ documentation and options are inherited as follows:
+
+ - If after comment and whitespace stripping, the documentation
+ string of the redeclared method is empty, it will be inherited
+ from the original method.
+
+ - Each annotation belonging to the service config (http,
+ visibility) which is not set in the redeclared method will be
+ inherited.
+
+ - If an http annotation is inherited, the path pattern will be
+ modified as follows. Any version prefix will be replaced by the
+ version of the including interface plus the [root][] path if
+ specified.
+
+ Example of a simple mixin:
+
+ package google.acl.v1;
+ service AccessControl {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v1/{resource=**}:getAcl";
+ }
+ }
+
+ package google.storage.v2;
+ service Storage {
+ rpc GetAcl(GetAclRequest) returns (Acl);
+
+ // Get a data record.
+ rpc GetData(GetDataRequest) returns (Data) {
+ option (google.api.http).get = "/v2/{resource=**}";
+ }
+ }
+
+ Example of a mixin configuration:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+
+ The mixin construct implies that all methods in `AccessControl` are
+ also declared with same name and request/response types in
+ `Storage`. A documentation generator or annotation processor will
+ see the effective `Storage.GetAcl` method after inheriting
+ documentation and annotations as follows:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+ Note how the version in the path pattern changed from `v1` to `v2`.
+
+ If the `root` field in the mixin is specified, it should be a
+ relative path under which inherited HTTP paths are placed. Example:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+ root: acls
+
+ This implies the following inherited HTTP annotation:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of the interface which is included.
+
+
+
+ Field number for the "root" field.
+
+
+
+ If non-empty specifies a path under which inherited HTTP paths
+ are rooted.
+
+
+
+ Holder for reflection information generated from google/protobuf/duration.proto
+
+
+ File descriptor for google/protobuf/duration.proto
+
+
+
+ A Duration represents a signed, fixed-length span of time represented
+ as a count of seconds and fractions of seconds at nanosecond
+ resolution. It is independent of any calendar and concepts like "day"
+ or "month". It is related to Timestamp in that the difference between
+ two Timestamp values is a Duration and it can be added or subtracted
+ from a Timestamp. Range is approximately +-10,000 years.
+
+ # Examples
+
+ Example 1: Compute Duration from two Timestamps in pseudo code.
+
+ Timestamp start = ...;
+ Timestamp end = ...;
+ Duration duration = ...;
+
+ duration.seconds = end.seconds - start.seconds;
+ duration.nanos = end.nanos - start.nanos;
+
+ if (duration.seconds < 0 && duration.nanos > 0) {
+ duration.seconds += 1;
+ duration.nanos -= 1000000000;
+ } else if (duration.seconds > 0 && duration.nanos < 0) {
+ duration.seconds -= 1;
+ duration.nanos += 1000000000;
+ }
+
+ Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+
+ Timestamp start = ...;
+ Duration duration = ...;
+ Timestamp end = ...;
+
+ end.seconds = start.seconds + duration.seconds;
+ end.nanos = start.nanos + duration.nanos;
+
+ if (end.nanos < 0) {
+ end.seconds -= 1;
+ end.nanos += 1000000000;
+ } else if (end.nanos >= 1000000000) {
+ end.seconds += 1;
+ end.nanos -= 1000000000;
+ }
+
+ Example 3: Compute Duration from datetime.timedelta in Python.
+
+ td = datetime.timedelta(days=3, minutes=10)
+ duration = Duration()
+ duration.FromTimedelta(td)
+
+ # JSON Mapping
+
+ In JSON format, the Duration type is encoded as a string rather than an
+ object, where the string ends in the suffix "s" (indicating seconds) and
+ is preceded by the number of seconds, with nanoseconds expressed as
+ fractional seconds. For example, 3 seconds with 0 nanoseconds should be
+ encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
+ be expressed in JSON format as "3.000000001s", and 3 seconds and 1
+ microsecond should be expressed in JSON format as "3.000001s".
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Signed seconds of the span of time. Must be from -315,576,000,000
+ to +315,576,000,000 inclusive. Note: these bounds are computed from:
+ 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Signed fractions of a second at nanosecond resolution of the span
+ of time. Durations less than one second are represented with a 0
+ `seconds` field and a positive or negative `nanos` field. For durations
+ of one second or more, a non-zero value for the `nanos` field must be
+ of the same sign as the `seconds` field. Must be from -999,999,999
+ to +999,999,999 inclusive.
+
+
+
+
+ The number of nanoseconds in a second.
+
+
+
+
+ The number of nanoseconds in a BCL tick (as used by and ).
+
+
+
+
+ The maximum permitted number of seconds.
+
+
+
+
+ The minimum permitted number of seconds.
+
+
+
+
+ Converts this to a .
+
+ If the duration is not a precise number of ticks, it is truncated towards 0.
+ The value of this duration, as a TimeSpan.
+ This value isn't a valid normalized duration, as
+ described in the documentation.
+
+
+
+ Converts the given to a .
+
+ The TimeSpan to convert.
+ The value of the given TimeSpan, as a Duration.
+
+
+
+ Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes.
+
+ The duration to negate. Must not be null.
+ The negated value of this duration.
+
+
+
+ Adds the two specified values together.
+
+ The first value to add. Must not be null.
+ The second value to add. Must not be null.
+
+
+
+
+ Subtracts one from another.
+
+ The duration to subtract from. Must not be null.
+ The duration to subtract. Must not be null.
+ The difference between the two specified durations.
+
+
+
+ Creates a duration with the normalized values from the given number of seconds and
+ nanoseconds, conforming with the description in the proto file.
+
+
+
+
+ Converts a duration specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in duration.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which
+ case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well
+ as Duration.
+
+
+
+ Holder for reflection information generated from google/protobuf/empty.proto
+
+
+ File descriptor for google/protobuf/empty.proto
+
+
+
+ A generic empty message that you can re-use to avoid defining duplicated
+ empty messages in your APIs. A typical example is to use it as the request
+ or the response type of an API method. For instance:
+
+ service Foo {
+ rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+ }
+
+
+
+ Holder for reflection information generated from google/protobuf/field_mask.proto
+
+
+ File descriptor for google/protobuf/field_mask.proto
+
+
+
+ `FieldMask` represents a set of symbolic field paths, for example:
+
+ paths: "f.a"
+ paths: "f.b.d"
+
+ Here `f` represents a field in some root message, `a` and `b`
+ fields in the message found in `f`, and `d` a field found in the
+ message in `f.b`.
+
+ Field masks are used to specify a subset of fields that should be
+ returned by a get operation or modified by an update operation.
+ Field masks also have a custom JSON encoding (see below).
+
+ # Field Masks in Projections
+
+ When used in the context of a projection, a response message or
+ sub-message is filtered by the API to only contain those fields as
+ specified in the mask. For example, if the mask in the previous
+ example is applied to a response message as follows:
+
+ f {
+ a : 22
+ b {
+ d : 1
+ x : 2
+ }
+ y : 13
+ }
+ z: 8
+
+ The result will not contain specific values for fields x,y and z
+ (their value will be set to the default, and omitted in proto text
+ output):
+
+ f {
+ a : 22
+ b {
+ d : 1
+ }
+ }
+
+ A repeated field is not allowed except at the last position of a
+ paths string.
+
+ If a FieldMask object is not present in a get operation, the
+ operation applies to all fields (as if a FieldMask of all fields
+ had been specified).
+
+ Note that a field mask does not necessarily apply to the
+ top-level response message. In case of a REST get operation, the
+ field mask applies directly to the response, but in case of a REST
+ list operation, the mask instead applies to each individual message
+ in the returned resource list. In case of a REST custom method,
+ other definitions may be used. Where the mask applies will be
+ clearly documented together with its declaration in the API. In
+ any case, the effect on the returned resource/resources is required
+ behavior for APIs.
+
+ # Field Masks in Update Operations
+
+ A field mask in update operations specifies which fields of the
+ targeted resource are going to be updated. The API is required
+ to only change the values of the fields as specified in the mask
+ and leave the others untouched. If a resource is passed in to
+ describe the updated values, the API ignores the values of all
+ fields not covered by the mask.
+
+ If a repeated field is specified for an update operation, new values will
+ be appended to the existing repeated field in the target resource. Note that
+ a repeated field is only allowed in the last position of a `paths` string.
+
+ If a sub-message is specified in the last position of the field mask for an
+ update operation, then new value will be merged into the existing sub-message
+ in the target resource.
+
+ For example, given the target message:
+
+ f {
+ b {
+ d: 1
+ x: 2
+ }
+ c: [1]
+ }
+
+ And an update message:
+
+ f {
+ b {
+ d: 10
+ }
+ c: [2]
+ }
+
+ then if the field mask is:
+
+ paths: ["f.b", "f.c"]
+
+ then the result will be:
+
+ f {
+ b {
+ d: 10
+ x: 2
+ }
+ c: [1, 2]
+ }
+
+ An implementation may provide options to override this default behavior for
+ repeated and message fields.
+
+ In order to reset a field's value to the default, the field must
+ be in the mask and set to the default value in the provided resource.
+ Hence, in order to reset all fields of a resource, provide a default
+ instance of the resource and set all fields in the mask, or do
+ not provide a mask as described below.
+
+ If a field mask is not present on update, the operation applies to
+ all fields (as if a field mask of all fields has been specified).
+ Note that in the presence of schema evolution, this may mean that
+ fields the client does not know and has therefore not filled into
+ the request will be reset to their default. If this is unwanted
+ behavior, a specific service may require a client to always specify
+ a field mask, producing an error if not.
+
+ As with get operations, the location of the resource which
+ describes the updated values in the request message depends on the
+ operation kind. In any case, the effect of the field mask is
+ required to be honored by the API.
+
+ ## Considerations for HTTP REST
+
+ The HTTP kind of an update operation which uses a field mask must
+ be set to PATCH instead of PUT in order to satisfy HTTP semantics
+ (PUT must only be used for full updates).
+
+ # JSON Encoding of Field Masks
+
+ In JSON, a field mask is encoded as a single string where paths are
+ separated by a comma. Fields name in each path are converted
+ to/from lower-camel naming conventions.
+
+ As an example, consider the following message declarations:
+
+ message Profile {
+ User user = 1;
+ Photo photo = 2;
+ }
+ message User {
+ string display_name = 1;
+ string address = 2;
+ }
+
+ In proto a field mask for `Profile` may look as such:
+
+ mask {
+ paths: "user.display_name"
+ paths: "photo"
+ }
+
+ In JSON, the same mask is represented as below:
+
+ {
+ mask: "user.displayName,photo"
+ }
+
+ # Field Masks and Oneof Fields
+
+ Field masks treat fields in oneofs just as regular fields. Consider the
+ following message:
+
+ message SampleMessage {
+ oneof test_oneof {
+ string name = 4;
+ SubMessage sub_message = 9;
+ }
+ }
+
+ The field mask can be:
+
+ mask {
+ paths: "name"
+ }
+
+ Or:
+
+ mask {
+ paths: "sub_message"
+ }
+
+ Note that oneof type names ("test_oneof" in this case) cannot be used in
+ paths.
+
+ ## Field Mask Verification
+
+ The implementation of any API method which has a FieldMask type field in the
+ request should verify the included field paths, and return an
+ `INVALID_ARGUMENT` error if any path is unmappable.
+
+
+
+ Field number for the "paths" field.
+
+
+
+ The set of field mask paths.
+
+
+
+
+ Converts a field mask specified by paths to a string.
+
+
+ If the value is a normalized duration in the range described in field_mask.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Paths in the field mask
+ Determines the handling of non-normalized values
+ The represented field mask is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Parses from a string to a FieldMask.
+
+
+
+
+ Parses from a string to a FieldMask and validates all field paths.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask for a list of field paths in a certain type.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether the given path is valid for a field mask.
+
+ true if the path is valid; false otherwise
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Checks whether a given field path is valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Converts this FieldMask to its canonical form. In the canonical form of a
+ FieldMask, all field paths are sorted alphabetically and redundant field
+ paths are removed.
+
+
+
+
+ Creates a union of two or more FieldMasks.
+
+
+
+
+ Calculates the intersection of two FieldMasks.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another with the
+ specified merge options.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another.
+
+
+
+
+ Options to customize merging behavior.
+
+
+
+
+ Whether to replace message fields(i.e., discard existing content in
+ destination message fields) when merging.
+ Default behavior is to merge the source message field into the
+ destination message field.
+
+
+
+
+ Whether to replace repeated fields (i.e., discard existing content in
+ destination repeated fields) when merging.
+ Default behavior is to append elements from source repeated field to the
+ destination repeated field.
+
+
+
+
+ Whether to replace primitive (non-repeated and non-message) fields in
+ destination message fields with the source primitive fields (i.e., if the
+ field is set in the source, the value is copied to the
+ destination; if the field is unset in the source, the field is cleared
+ from the destination) when merging.
+
+ Default behavior is to always set the value of the source primitive
+ field to the destination primitive field, and if the source field is
+ unset, the default value of the source field is copied to the
+ destination.
+
+
+
+ Holder for reflection information generated from google/protobuf/source_context.proto
+
+
+ File descriptor for google/protobuf/source_context.proto
+
+
+
+ `SourceContext` represents information about the source of a
+ protobuf element, like the file in which it is defined.
+
+
+
+ Field number for the "file_name" field.
+
+
+
+ The path-qualified name of the .proto file that contained the associated
+ protobuf element. For example: `"google/protobuf/source_context.proto"`.
+
+
+
+ Holder for reflection information generated from google/protobuf/struct.proto
+
+
+ File descriptor for google/protobuf/struct.proto
+
+
+
+ `NullValue` is a singleton enumeration to represent the null value for the
+ `Value` type union.
+
+ The JSON representation for `NullValue` is JSON `null`.
+
+
+
+
+ Null value.
+
+
+
+
+ `Struct` represents a structured data value, consisting of fields
+ which map to dynamically typed values. In some languages, `Struct`
+ might be supported by a native representation. For example, in
+ scripting languages like JS a struct is represented as an
+ object. The details of that representation are described together
+ with the proto support for the language.
+
+ The JSON representation for `Struct` is JSON object.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ Unordered map of dynamically typed values.
+
+
+
+
+ `Value` represents a dynamically typed value which can be either
+ null, a number, a string, a boolean, a recursive struct value, or a
+ list of values. A producer of value is expected to set one of these
+ variants. Absence of any variant indicates an error.
+
+ The JSON representation for `Value` is JSON value.
+
+
+
+ Field number for the "null_value" field.
+
+
+
+ Represents a null value.
+
+
+
+ Field number for the "number_value" field.
+
+
+
+ Represents a double value.
+
+
+
+ Field number for the "string_value" field.
+
+
+
+ Represents a string value.
+
+
+
+ Field number for the "bool_value" field.
+
+
+
+ Represents a boolean value.
+
+
+
+ Field number for the "struct_value" field.
+
+
+
+ Represents a structured value.
+
+
+
+ Field number for the "list_value" field.
+
+
+
+ Represents a repeated `Value`.
+
+
+
+ Enum of possible cases for the "kind" oneof.
+
+
+
+ Convenience method to create a Value message with a string value.
+
+ Value to set for the StringValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a number value.
+
+ Value to set for the NumberValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a Boolean value.
+
+ Value to set for the BoolValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a null initial value.
+
+ A newly-created Value message a null initial value.
+
+
+
+ Convenience method to create a Value message with an initial list of values.
+
+ The values provided are not cloned; the references are copied directly.
+ A newly-created Value message an initial list value.
+
+
+
+ Convenience method to create a Value message with an initial struct value
+
+ The value provided is not cloned; the reference is copied directly.
+ A newly-created Value message an initial struct value.
+
+
+
+ `ListValue` is a wrapper around a repeated field of values.
+
+ The JSON representation for `ListValue` is JSON array.
+
+
+
+ Field number for the "values" field.
+
+
+
+ Repeated field of dynamically typed values.
+
+
+
+
+ Extension methods on BCL time-related types, converting to protobuf types.
+
+
+
+
+ Converts the given to a .
+
+ The date and time to convert to a timestamp.
+ The value has a other than Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts the given to a .
+
+ The time span to convert.
+ The converted duration.
+
+
+ Holder for reflection information generated from google/protobuf/timestamp.proto
+
+
+ File descriptor for google/protobuf/timestamp.proto
+
+
+
+ A Timestamp represents a point in time independent of any time zone or local
+ calendar, encoded as a count of seconds and fractions of seconds at
+ nanosecond resolution. The count is relative to an epoch at UTC midnight on
+ January 1, 1970, in the proleptic Gregorian calendar which extends the
+ Gregorian calendar backwards to year one.
+
+ All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+ second table is needed for interpretation, using a [24-hour linear
+ smear](https://developers.google.com/time/smear).
+
+ The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+ restricting to that range, we ensure that we can convert to and from [RFC
+ 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+
+ # Examples
+
+ Example 1: Compute Timestamp from POSIX `time()`.
+
+ Timestamp timestamp;
+ timestamp.set_seconds(time(NULL));
+ timestamp.set_nanos(0);
+
+ Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+
+ Timestamp timestamp;
+ timestamp.set_seconds(tv.tv_sec);
+ timestamp.set_nanos(tv.tv_usec * 1000);
+
+ Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+
+ // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ Timestamp timestamp;
+ timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+
+ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+
+ long millis = System.currentTimeMillis();
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ .setNanos((int) ((millis % 1000) * 1000000)).build();
+
+ Example 5: Compute Timestamp from Java `Instant.now()`.
+
+ Instant now = Instant.now();
+
+ Timestamp timestamp =
+ Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+ .setNanos(now.getNano()).build();
+
+ Example 6: Compute Timestamp from current time in Python.
+
+ timestamp = Timestamp()
+ timestamp.GetCurrentTime()
+
+ # JSON Mapping
+
+ In JSON format, the Timestamp type is encoded as a string in the
+ [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+ format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+ where {year} is always expressed using four digits while {month}, {day},
+ {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+ seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+ are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+ is required. A proto3 JSON serializer should always use UTC (as indicated by
+ "Z") when printing the Timestamp type and a proto3 JSON parser should be
+ able to accept both UTC and other timezones (as indicated by an offset).
+
+ For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+ 01:30 UTC on January 15, 2017.
+
+ In JavaScript, one can convert a Date object to this format using the
+ standard
+ [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ method. In Python, a standard `datetime.datetime` object can be converted
+ to this format using
+ [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
+ ) to obtain a formatter capable of generating timestamps in this format.
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Represents seconds of UTC time since Unix epoch
+ 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+ 9999-12-31T23:59:59Z inclusive.
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Non-negative fractions of a second at nanosecond resolution. Negative
+ second values with fractions must still have non-negative nanos values
+ that count forward in time. Must be from 0 to 999,999,999
+ inclusive.
+
+
+
+
+ Returns the difference between one and another, as a .
+
+ The timestamp to subtract from. Must not be null.
+ The timestamp to subtract. Must not be null.
+ The difference between the two specified timestamps.
+
+
+
+ Adds a to a , to obtain another Timestamp.
+
+ The timestamp to add the duration to. Must not be null.
+ The duration to add. Must not be null.
+ The result of adding the duration to the timestamp.
+
+
+
+ Subtracts a from a , to obtain another Timestamp.
+
+ The timestamp to subtract the duration from. Must not be null.
+ The duration to subtract.
+ The result of subtracting the duration from the timestamp.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTime will always have a Kind of Utc.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTime.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTimeOffset will always have an Offset of zero.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTimeOffset.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts the specified to a .
+
+
+ The Kind of is not DateTimeKind.Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts a timestamp specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in timestamp.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+ Timestamp to compare
+ an integer indicating whether this timestamp precedes or follows the other
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Returns whether two timestamps are equivalent
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps refer to the same nanosecond
+
+
+
+ Returns whether two timestamps differ
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps differ
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+ Holder for reflection information generated from google/protobuf/type.proto
+
+
+ File descriptor for google/protobuf/type.proto
+
+
+
+ The syntax in which a protocol buffer element is defined.
+
+
+
+
+ Syntax `proto2`.
+
+
+
+
+ Syntax `proto3`.
+
+
+
+
+ A protocol buffer message type.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified message name.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ The list of fields.
+
+
+
+ Field number for the "oneofs" field.
+
+
+
+ The list of types appearing in `oneof` definitions in this type.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ A single field of a message type.
+
+
+
+ Field number for the "kind" field.
+
+
+
+ The field type.
+
+
+
+ Field number for the "cardinality" field.
+
+
+
+ The field cardinality.
+
+
+
+ Field number for the "number" field.
+
+
+
+ The field number.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The field name.
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ The field type URL, without the scheme, for message or enumeration
+ types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ The index of the field type in `Type.oneofs`, for message or enumeration
+ types. The first type has index 1; zero means the type is not in the list.
+
+
+
+ Field number for the "packed" field.
+
+
+
+ Whether to use alternative packed wire representation.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "json_name" field.
+
+
+
+ The field JSON name.
+
+
+
+ Field number for the "default_value" field.
+
+
+
+ The string value of the default value of this field. Proto2 syntax only.
+
+
+
+ Container for nested types declared in the Field message type.
+
+
+
+ Basic field types.
+
+
+
+
+ Field type unknown.
+
+
+
+
+ Field type double.
+
+
+
+
+ Field type float.
+
+
+
+
+ Field type int64.
+
+
+
+
+ Field type uint64.
+
+
+
+
+ Field type int32.
+
+
+
+
+ Field type fixed64.
+
+
+
+
+ Field type fixed32.
+
+
+
+
+ Field type bool.
+
+
+
+
+ Field type string.
+
+
+
+
+ Field type group. Proto2 syntax only, and deprecated.
+
+
+
+
+ Field type message.
+
+
+
+
+ Field type bytes.
+
+
+
+
+ Field type uint32.
+
+
+
+
+ Field type enum.
+
+
+
+
+ Field type sfixed32.
+
+
+
+
+ Field type sfixed64.
+
+
+
+
+ Field type sint32.
+
+
+
+
+ Field type sint64.
+
+
+
+
+ Whether a field is optional, required, or repeated.
+
+
+
+
+ For fields with unknown cardinality.
+
+
+
+
+ For optional fields.
+
+
+
+
+ For required fields. Proto2 syntax only.
+
+
+
+
+ For repeated fields.
+
+
+
+
+ Enum type definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum type name.
+
+
+
+ Field number for the "enumvalue" field.
+
+
+
+ Enum value definitions.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ Enum value definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum value name.
+
+
+
+ Field number for the "number" field.
+
+
+
+ Enum value number.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+
+ A protocol buffer option, which can be attached to a message, field,
+ enumeration, etc.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The option's name. For protobuf built-in options (options defined in
+ descriptor.proto), this is the short name. For example, `"map_entry"`.
+ For custom options, it should be the fully-qualified name. For example,
+ `"google.api.http"`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The option's value packed in an Any message. If the value is a primitive,
+ the corresponding wrapper type defined in google/protobuf/wrappers.proto
+ should be used. If the value is an enum, it should be stored as an int32
+ value using the google.protobuf.Int32Value type.
+
+
+
+ Holder for reflection information generated from google/protobuf/wrappers.proto
+
+
+ File descriptor for google/protobuf/wrappers.proto
+
+
+
+ Field number for the single "value" field in all wrapper types.
+
+
+
+
+ Wrapper message for `double`.
+
+ The JSON representation for `DoubleValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The double value.
+
+
+
+
+ Wrapper message for `float`.
+
+ The JSON representation for `FloatValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The float value.
+
+
+
+
+ Wrapper message for `int64`.
+
+ The JSON representation for `Int64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int64 value.
+
+
+
+
+ Wrapper message for `uint64`.
+
+ The JSON representation for `UInt64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint64 value.
+
+
+
+
+ Wrapper message for `int32`.
+
+ The JSON representation for `Int32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int32 value.
+
+
+
+
+ Wrapper message for `uint32`.
+
+ The JSON representation for `UInt32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint32 value.
+
+
+
+
+ Wrapper message for `bool`.
+
+ The JSON representation for `BoolValue` is JSON `true` and `false`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bool value.
+
+
+
+
+ Wrapper message for `string`.
+
+ The JSON representation for `StringValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The string value.
+
+
+
+
+ Wrapper message for `bytes`.
+
+ The JSON representation for `BytesValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bytes value.
+
+
+
+
+ This class is used internally by the Protocol Buffer Library and generated
+ message implementations. It is public only for the sake of those generated
+ messages. Others should not use this class directly.
+
+ This class contains constants and helper functions useful for dealing with
+ the Protocol Buffer wire format.
+
+
+
+
+
+ Wire types within protobuf encoding.
+
+
+
+
+ Variable-length integer.
+
+
+
+
+ A fixed-length 64-bit value.
+
+
+
+
+ A length-delimited value, i.e. a length followed by that many bytes of data.
+
+
+
+
+ A "start group" value
+
+
+
+
+ An "end group" value
+
+
+
+
+ A fixed-length 32-bit value.
+
+
+
+
+ Given a tag value, determines the wire type (lower 3 bits).
+
+
+
+
+ Given a tag value, determines the field number (the upper 29 bits).
+
+
+
+
+ Makes a tag value given a field number and wire type.
+
+
+
+
+ Abstraction for writing to a steam / IBufferWriter
+
+
+
+
+ Initialize an instance with a coded output stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer writer.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer represented by a single span (i.e. buffer cannot be refreshed)
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Verifies that SpaceLeft returns zero.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ An opaque struct that represents the current serialization state and is passed along
+ as the serialization proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Creates a WriteContext instance from CodedOutputStream.
+ WARNING: internally this copies the CodedOutputStream's state, so after done with the WriteContext,
+ the CodedOutputStream's state needs to be updated.
+
+
+
+
+ Writes a double field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Primitives for encoding protobuf wire format.
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Given a QWORD which represents a buffer of 4 ASCII chars in machine-endian order,
+ narrows each WORD to a BYTE, then writes the 4-byte result to the output buffer
+ also in machine-endian order.
+
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Encodes and writes a tag.
+
+
+
+
+ Writes an already-encoded tag.
+
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+
+
+
+ Encode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Encode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Writing messages / groups.
+
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+
+
+
+ Writes a group, without a tag.
+
+
+
+
+ Writes a message, without a tag.
+ Message will be written without a length prefix.
+
+
+
+
+ Indicates that certain members on a specified are accessed dynamically,
+ for example through .
+
+
+ This allows tools to understand which members are being accessed during the execution
+ of a program.
+
+ This attribute is valid on members whose type is or .
+
+ When this attribute is applied to a location of type , the assumption is
+ that the string represents a fully qualified type name.
+
+ When this attribute is applied to a class, interface, or struct, the members specified
+ can be accessed dynamically on instances returned from calling
+ on instances of that class, interface, or struct.
+
+ If the attribute is applied to a method it's treated as a special case and it implies
+ the attribute should be applied to the "this" parameter of the method. As such the attribute
+ should only be used on instance methods of types assignable to System.Type (or string, but no methods
+ will use it there).
+
+
+
+
+ Initializes a new instance of the class
+ with the specified member types.
+
+ The types of members dynamically accessed.
+
+
+
+ Gets the which specifies the type
+ of members dynamically accessed.
+
+
+
+
+ Specifies the types of members that are dynamically accessed.
+
+ This enumeration has a attribute that allows a
+ bitwise combination of its member values.
+
+
+
+
+ Specifies no members.
+
+
+
+
+ Specifies the default, parameterless public constructor.
+
+
+
+
+ Specifies all public constructors.
+
+
+
+
+ Specifies all non-public constructors.
+
+
+
+
+ Specifies all public methods.
+
+
+
+
+ Specifies all non-public methods.
+
+
+
+
+ Specifies all public fields.
+
+
+
+
+ Specifies all non-public fields.
+
+
+
+
+ Specifies all public nested types.
+
+
+
+
+ Specifies all non-public nested types.
+
+
+
+
+ Specifies all public properties.
+
+
+
+
+ Specifies all non-public properties.
+
+
+
+
+ Specifies all public events.
+
+
+
+
+ Specifies all non-public events.
+
+
+
+
+ Specifies all interfaces implemented by the type.
+
+
+
+
+ Specifies all members.
+
+
+
+
+ Indicates that the specified method requires dynamic access to code that is not referenced
+ statically, for example through .
+
+
+ This allows tools to understand which methods are unsafe to call when removing unreferenced
+ code from an application.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified message.
+
+
+ A message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets a message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets or sets an optional URL that contains more information about the method,
+ why it requires unreferenced code, and what options a consumer has to deal with it.
+
+
+
+
+ Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
+ single code artifact.
+
+
+ is different than
+ in that it doesn't have a
+ . So it is always preserved in the compiled assembly.
+
+
+
+
+ Initializes a new instance of the
+ class, specifying the category of the tool and the identifier for an analysis rule.
+
+ The category for the attribute.
+ The identifier of the analysis rule the attribute applies to.
+
+
+
+ Gets the category identifying the classification of the attribute.
+
+
+ The property describes the tool or tool analysis category
+ for which a message suppression attribute applies.
+
+
+
+
+ Gets the identifier of the analysis tool rule to be suppressed.
+
+
+ Concatenated together, the and
+ properties form a unique check identifier.
+
+
+
+
+ Gets or sets the scope of the code that is relevant for the attribute.
+
+
+ The Scope property is an optional argument that specifies the metadata scope for which
+ the attribute is relevant.
+
+
+
+
+ Gets or sets a fully qualified path that represents the target of the attribute.
+
+
+ The property is an optional argument identifying the analysis target
+ of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
+ Because it is fully qualified, it can be long, particularly for targets such as parameters.
+ The analysis tool user interface should be capable of automatically formatting the parameter.
+
+
+
+
+ Gets or sets an optional argument expanding on exclusion criteria.
+
+
+ The property is an optional argument that specifies additional
+ exclusion where the literal metadata target is not sufficiently precise. For example,
+ the cannot be applied within a method,
+ and it may be desirable to suppress a violation against a statement in the method that will
+ give a rule violation, but not against all statements in the method.
+
+
+
+
+ Gets or sets the justification for suppressing the code analysis message.
+
+
+
+
diff --git a/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.dll b/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.dll
new file mode 100644
index 0000000..7c4f4f8
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.dll differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.pdb b/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.pdb
new file mode 100644
index 0000000..3584169
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.pdb differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.xml b/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.xml
new file mode 100644
index 0000000..ffeff33
--- /dev/null
+++ b/packages/Google.Protobuf.3.21.9/lib/net5.0/Google.Protobuf.xml
@@ -0,0 +1,10236 @@
+
+
+
+ Google.Protobuf
+
+
+
+
+ Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy
+
+
+
+
+ The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy
+
+
+
+
+ Determines which copy routine to use based on the number of bytes to be copied.
+
+
+
+
+ Reverses the order of bytes in the array
+
+
+
+
+ Immutable array of bytes.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+ This method encapsulates converting array to memory. Reduces need for SecuritySafeCritical
+ in .NET Framework.
+
+
+
+
+ Constructs a new ByteString from the given memory. The memory is
+ *not* copied, and must not be modified after this constructor is called.
+
+
+
+
+ Returns an empty ByteString.
+
+
+
+
+ Returns the length of this ByteString in bytes.
+
+
+
+
+ Returns true if this byte string is empty, false otherwise.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Converts this into a byte array.
+
+ The data is copied - changes to the returned array will not be reflected in this ByteString.
+ A byte array with the same data as this ByteString.
+
+
+
+ Converts this into a standard base64 representation.
+
+ A base64 representation of this ByteString.
+
+
+
+ Constructs a from the Base64 Encoded String.
+
+
+
+
+ Constructs a from data in the given stream, synchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from data in the given stream, asynchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ The cancellation token to use when reading from the stream, if any.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from the given array. The contents
+ are copied, so further modifications to the array will not
+ be reflected in the returned ByteString.
+ This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form
+ which is primarily useful for testing.
+
+
+
+
+ Constructs a from a portion of a byte array.
+
+
+
+
+ Constructs a from a read only span. The contents
+ are copied, so further modifications to the span will not
+ be reflected in the returned .
+
+
+
+
+ Creates a new by encoding the specified text with
+ the given encoding.
+
+
+
+
+ Creates a new by encoding the specified text in UTF-8.
+
+
+
+
+ Returns the byte at the given index.
+
+
+
+
+ Converts this into a string by applying the given encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with the given encoding.
+
+ The encoding to use to decode the binary data into text.
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Converts this into a string by applying the UTF-8 encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with UTF-8.
+
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Creates a CodedInputStream from this ByteString's data.
+
+
+
+
+ Compares two byte strings for equality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ true if the byte strings are equal; false otherwise.
+
+
+
+ Compares two byte strings for inequality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ false if the byte strings are equal; true otherwise.
+
+
+
+ Compares this byte string with another object.
+
+ The object to compare this with.
+ true if refers to an equal ; false otherwise.
+
+
+
+ Returns a hash code for this object. Two equal byte strings
+ will return the same hash code.
+
+ A hash code for this object.
+
+
+
+ Compares this byte string with another.
+
+ The to compare this with.
+ true if refers to an equal byte string; false otherwise.
+
+
+
+ Copies the entire byte array to the destination array provided at the offset specified.
+
+
+
+
+ Writes the entire byte array to the provided stream
+
+
+
+
+ SecuritySafeCritical attribute can not be placed on types with async methods.
+ This class has ByteString's async methods so it can be marked with SecuritySafeCritical.
+
+
+
+
+ Reads and decodes protocol message fields.
+
+
+
+ This class is generally used by generated code to read appropriate
+ primitives from the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format.
+
+
+ Repeated fields and map fields are not handled by this class; use
+ and to serialize such fields.
+
+
+
+
+
+ Whether to leave the underlying stream open when disposing of this stream.
+ This is always true when there's no stream.
+
+
+
+
+ Buffer of data read from the stream or provided at construction time.
+
+
+
+
+ The stream to read further input from, or null if the byte array buffer was provided
+ directly on construction, with no further data available.
+
+
+
+
+ The parser state is kept separately so that other parse implementations can reuse the same
+ parsing primitives.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given byte array.
+
+
+
+
+ Creates a new that reads from the given byte array slice.
+
+
+
+
+ Creates a new reading data from the given stream, which will be disposed
+ when the returned object is disposed.
+
+ The stream to read from.
+
+
+
+ Creates a new reading data from the given stream.
+
+ The stream to read from.
+ true to leave open when the returned
+ is disposed; false to dispose of the given stream when the
+ returned object is disposed.
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the default limits.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the specified limits.
+
+
+ This chains to the version with the default limits instead of vice versa to avoid
+ having to check that the default values are valid every time.
+
+
+
+
+ Creates a with the specified size and recursion limits, reading
+ from an input stream.
+
+
+ This method exists separately from the constructor to reduce the number of constructor overloads.
+ It is likely to be used considerably less frequently than the constructors, as the default limits
+ are suitable for most use cases.
+
+ The input stream to read from
+ The total limit of data to read from the stream.
+ The maximum recursion depth to allow while reading.
+ A CodedInputStream reading from with the specified size
+ and recursion limits.
+
+
+
+ Returns the current position in the input stream, or the position in the input buffer
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the stream.
+
+
+
+
+ Returns the size limit for this stream.
+
+
+ This limit is applied when reading from the underlying stream, as a sanity check. It is
+ not applied when reading from a byte array data source without an underlying stream.
+ The default value is Int32.MaxValue.
+
+
+ The size limit.
+
+
+
+
+ Returns the recursion limit for this stream. This limit is applied whilst reading messages,
+ to avoid maliciously-recursive data.
+
+
+ The default limit is 100.
+
+
+ The recursion limit for this stream.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Disposes of this instance, potentially closing any underlying stream.
+
+
+ As there is no flushing to perform here, disposing of a which
+ was constructed with the leaveOpen option parameter set to true (or one which
+ was constructed to read from a byte array) has no effect.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of stream".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputStream; it may be the end of the logical stream
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of stream. (0 is never a valid tag.)
+
+
+
+ Skips the data for the field with the tag we've just read.
+ This should be called directly after , when
+ the caller wishes to skip an unknown field.
+
+
+ This method throws if the last-read tag was an end-group tag.
+ If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the
+ start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly
+ resulting in an error if an end-group tag has not been paired with an earlier start-group tag.
+
+ The last tag was an end-group tag
+ The last read operation read to the end of the logical stream
+
+
+
+ Skip a group.
+
+
+
+
+ Reads a double field from the stream.
+
+
+
+
+ Reads a float field from the stream.
+
+
+
+
+ Reads a uint64 field from the stream.
+
+
+
+
+ Reads an int64 field from the stream.
+
+
+
+
+ Reads an int32 field from the stream.
+
+
+
+
+ Reads a fixed64 field from the stream.
+
+
+
+
+ Reads a fixed32 field from the stream.
+
+
+
+
+ Reads a bool field from the stream.
+
+
+
+
+ Reads a string field from the stream.
+
+
+
+
+ Reads an embedded message field value from the stream.
+
+
+
+
+ Reads an embedded group field from the stream.
+
+
+
+
+ Reads a bytes field value from the stream.
+
+
+
+
+ Reads a uint32 field value from the stream.
+
+
+
+
+ Reads an enum field value from the stream.
+
+
+
+
+ Reads an sfixed32 field value from the stream.
+
+
+
+
+ Reads an sfixed64 field value from the stream.
+
+
+
+
+ Reads an sint32 field value from the stream.
+
+
+
+
+ Reads an sint64 field value from the stream.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Reads a raw varint from the stream.
+
+
+
+
+ Reads a 32-bit little-endian integer from the stream.
+
+
+
+
+ Reads a 64-bit little-endian integer from the stream.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Called when buffer is empty to read more bytes from the
+ input. If is true, RefillBuffer() guarantees that
+ either there will be at least one byte in the buffer when it returns
+ or it will throw an exception. If is false,
+ RefillBuffer() returns false if no more bytes were available.
+
+
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a top-level message or a nested message after the limits for this message have been pushed.
+ (parser will proceed until the end of the current limit)
+ NOTE: this method needs to be public because it's invoked by the generated code - e.g. msg.MergeFrom(CodedInputStream input) method
+
+
+
+
+ Encodes and writes protocol message fields.
+
+
+
+ This class is generally used by generated code to write appropriate
+ primitives to the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format. Unlike some other implementations,
+ this does not include combined "write tag and value" methods. Generated
+ code knows the exact byte representations of the tags they're going to write,
+ so there's no need to re-encode them each time. Manually-written code calling
+ this class should just call one of the WriteTag overloads before each value.
+
+
+ Repeated fields and map fields are not handled by this class; use RepeatedField<T>
+ and MapField<TKey, TValue> to serialize such fields.
+
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ double field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ float field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bool field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ string field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ group field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ embedded message field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bytes field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ enum field, including the tag. The caller is responsible for
+ converting the enum value to its numeric value.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a length,
+ as written by .
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a tag.
+
+
+
+
+ The buffer size used by CreateInstance(Stream).
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array slice. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new which write to the given stream, and disposes of that
+ stream when the returned CodedOutputStream is disposed.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+ The size of buffer to use internally.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream.
+
+ The stream to write to.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to.
+ The size of buffer to use internally.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Returns the current position in the stream, or the position in the output buffer
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ Only the message data is written, without a length-delimiter.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Indicates that a CodedOutputStream wrapping a flat byte array
+ ran out of space.
+
+
+
+
+ Flushes any buffered data and optionally closes the underlying stream, if any.
+
+
+
+ By default, any underlying stream is closed by this method. To configure this behaviour,
+ use a constructor overload with a leaveOpen parameter. If this instance does not
+ have an underlying stream, this method does nothing.
+
+
+ For the sake of efficiency, calling this method does not prevent future write calls - but
+ if a later write ends up writing to a stream which has been disposed, that is likely to
+ fail. It is recommend that you not call any other methods after this.
+
+
+
+
+
+ Flushes any buffered data to the underlying stream (if there is one).
+
+
+
+
+ Verifies that SpaceLeft returns zero. It's common to create a byte array
+ that is exactly big enough to hold a message, then write to it with
+ a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that
+ the message was actually as big as expected, which can help finding bugs.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ Utility to compare if two Lists are the same, and the hash code
+ of a List.
+
+
+
+
+ Checks if two lists are equal.
+
+
+
+
+ Gets the list's hash code.
+
+
+
+
+ Representation of a map field in a Protocol Buffer message.
+
+ Key type in the map. Must be a type supported by Protocol Buffer map keys.
+ Value type in the map. Must be a type supported by Protocol Buffers.
+
+
+ For string keys, the equality comparison is provided by .
+
+
+ Null values are not permitted in the map, either for wrapper types or regular messages.
+ If a map is deserialized from a data stream and the value is missing from an entry, a default value
+ is created instead. For primitive types, that is the regular default value (0, the empty string and so
+ on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length
+ encoded value for the field.
+
+
+ This implementation does not generally prohibit the use of key/value types which are not
+ supported by Protocol Buffers (e.g. using a key type of byte
) but nor does it guarantee
+ that all operations will work in such cases.
+
+
+ The order in which entries are returned when iterating over this object is undefined, and may change
+ in future versions.
+
+
+
+
+
+ Creates a deep clone of this object.
+
+
+ A deep clone of this object.
+
+
+
+
+ Adds the specified key/value pair to the map.
+
+
+ This operation fails if the key already exists in the map. To replace an existing entry, use the indexer.
+
+ The key to add
+ The value to add.
+ The given key already exists in map.
+
+
+
+ Determines whether the specified key is present in the map.
+
+ The key to check.
+ true if the map contains the given key; false otherwise.
+
+
+
+ Removes the entry identified by the given key from the map.
+
+ The key indicating the entry to remove from the map.
+ true if the map contained the given key before the entry was removed; false otherwise.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key whose value to get.
+ When this method returns, the value associated with the specified key, if the key is found;
+ otherwise, the default value for the type of the parameter.
+ This parameter is passed uninitialized.
+ true if the map contains an element with the specified key; otherwise, false.
+
+
+
+ Gets or sets the value associated with the specified key.
+
+ The key of the value to get or set.
+ The property is retrieved and key does not exist in the collection.
+ The value associated with the specified key. If the specified key is not found,
+ a get operation throws a , and a set operation creates a new element with the specified key.
+
+
+
+ Gets a collection containing the keys in the map.
+
+
+
+
+ Gets a collection containing the values in the map.
+
+
+
+
+ Adds the specified entries to the map. The keys and values are not automatically cloned.
+
+ The entries to add to the map.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Adds the specified item to the map.
+
+ The item to add to the map.
+
+
+
+ Removes all items from the map.
+
+
+
+
+ Determines whether map contains an entry equivalent to the given key/value pair.
+
+ The key/value pair to find.
+
+
+
+
+ Copies the key/value pairs in this map to an array.
+
+ The array to copy the entries into.
+ The index of the array at which to start copying values.
+
+
+
+ Removes the specified key/value pair from the map.
+
+ Both the key and the value must be found for the entry to be removed.
+ The key/value pair to remove.
+ true if the key/value pair was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the map.
+
+
+
+
+ Gets a value indicating whether the map is read-only.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this map with another for equality.
+
+
+ The order of the key/value pairs in the maps is not deemed significant in this comparison.
+
+ The map to compare this with.
+ true if refers to an equal map; false otherwise.
+
+
+
+ Adds entries to the map from the given stream.
+
+
+ It is assumed that the stream is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the stream until the end is reached, or
+ a different tag is encountered.
+
+ Stream to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Adds entries to the map from the given parse context.
+
+
+ It is assumed that the input is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the input until the end is reached, or
+ a different tag is encountered.
+
+ Input to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Writes the contents of this map to the given coded output stream, using the specified codec
+ to encode each entry.
+
+ The output stream to write to.
+ The codec to use for each entry.
+
+
+
+ Writes the contents of this map to the given write context, using the specified codec
+ to encode each entry.
+
+ The write context to write to.
+ The codec to use for each entry.
+
+
+
+ Calculates the size of this map based on the given entry codec.
+
+ The codec to use to encode each entry.
+
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ A codec for a specific map field. This contains all the information required to encode and
+ decode the nested messages.
+
+
+
+
+ Creates a new entry codec based on a separate key codec and value codec,
+ and the tag to use for each map entry.
+
+ The key codec.
+ The value codec.
+ The map tag to use to introduce each map entry.
+
+
+
+ The key codec.
+
+
+
+
+ The value codec.
+
+
+
+
+ The tag used in the enclosing message to indicate map entries.
+
+
+
+
+ Provides a central place to implement equality comparisons, primarily for bitwise float/double equality.
+
+
+
+
+ Returns an equality comparer for suitable for Protobuf equality comparisons.
+ This is usually just the default equality comparer for the type, but floating point numbers are compared
+ bitwise.
+
+ The type of equality comparer to return.
+ The equality comparer.
+
+
+
+ Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Read-only wrapper around another dictionary.
+
+
+
+
+ The contents of a repeated field: essentially, a collection with some extra
+ restrictions (no null values) and capabilities (deep cloning).
+
+
+ This implementation does not generally prohibit the use of types which are not
+ supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases.
+
+ The element type of the repeated field.
+
+
+
+ Creates a deep clone of this repeated field.
+
+
+ If the field type is
+ a message type, each element is also cloned; otherwise, it is
+ assumed that the field type is primitive (including string and
+ bytes, both of which are immutable) and so a simple copy is
+ equivalent to a deep clone.
+
+ A deep clone of this repeated field.
+
+
+
+ Adds the entries from the given input stream, decoding them with the specified codec.
+
+ The input stream to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Adds the entries from the given parse context, decoding them with the specified codec.
+
+ The input to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Calculates the size of this collection based on the given codec.
+
+ The codec to use when encoding each field.
+ The number of bytes that would be written to an output by one of the WriteTo methods,
+ using the same codec.
+
+
+
+ Writes the contents of this collection to the given ,
+ encoding each value using the specified codec.
+
+ The output stream to write to.
+ The codec to use when encoding each value.
+
+
+
+ Writes the contents of this collection to the given write context,
+ encoding each value using the specified codec.
+
+ The write context to write to.
+ The codec to use when encoding each value.
+
+
+
+ Gets and sets the capacity of the RepeatedField's internal array. WHen set, the internal array is reallocated to the given capacity.
+ The new value is less than Count -or- when Count is less than 0.
+
+
+
+
+ Adds the specified item to the collection.
+
+ The item to add.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Determines whether this collection contains the given item.
+
+ The item to find.
+ true if this collection contains the given item; false otherwise.
+
+
+
+ Copies this collection to the given array.
+
+ The array to copy to.
+ The first index of the array to copy to.
+
+
+
+ Removes the specified item from the collection
+
+ The item to remove.
+ true if the item was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the collection.
+
+
+
+
+ Gets a value indicating whether the collection is read-only.
+
+
+
+
+ Adds all of the specified values into this collection.
+
+ The values to add to this collection.
+
+
+
+ Adds all of the specified values into this collection. This method is present to
+ allow repeated fields to be constructed from queries within collection initializers.
+ Within non-collection-initializer code, consider using the equivalent
+ method instead for clarity.
+
+ The values to add to this collection.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this repeated field with another for equality.
+
+ The repeated field to compare this with.
+ true if refers to an equal repeated field; false otherwise.
+
+
+
+ Returns the index of the given item within the collection, or -1 if the item is not
+ present.
+
+ The item to find in the collection.
+ The zero-based index of the item, or -1 if it is not found.
+
+
+
+ Inserts the given item at the specified index.
+
+ The index at which to insert the item.
+ The item to insert.
+
+
+
+ Removes the item at the given index.
+
+ The zero-based index of the item to remove.
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ Gets or sets the item at the specified index.
+
+
+ The element at the specified index.
+
+ The zero-based index of the element to get or set.
+ The item at the specified index.
+
+
+
+ Extension methods for , effectively providing
+ the familiar members from previous desktop framework versions while
+ targeting the newer releases, .NET Core etc.
+
+
+
+
+ Returns the public getter of a property, or null if there is no such getter
+ (either because it's read-only, or the getter isn't public).
+
+
+
+
+ Returns the public setter of a property, or null if there is no such setter
+ (either because it's write-only, or the setter isn't public).
+
+
+
+
+ Provides extension methods on Type that just proxy to TypeInfo.
+ These are used to support the new type system from .NET 4.5, without
+ having calls to GetTypeInfo all over the place. While the methods here are meant to be
+ broadly compatible with the desktop framework, there are some subtle differences in behaviour - but
+ they're not expected to affect our use cases. While the class is internal, that should be fine: we can
+ evaluate each new use appropriately.
+
+
+
+
+ See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom
+
+
+
+
+ Returns a representation of the public property associated with the given name in the given type,
+ including inherited properties or null if there is no such public property.
+ Here, "public property" means a property where either the getter, or the setter, or both, is public.
+
+
+
+
+ Returns a representation of the public method associated with the given name in the given type,
+ including inherited methods.
+
+
+ This has a few differences compared with Type.GetMethod in the desktop framework. It will throw
+ if there is an ambiguous match even between a private method and a public one, but it *won't* throw
+ if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and
+ class Child : Base declares public void Foo(long)).
+
+ One type in the hierarchy declared more than one method with the same name
+
+
+
+ Represents a non-generic extension definition. This API is experimental and subject to change.
+
+
+
+
+ Internal use. Creates a new extension with the specified field number.
+
+
+
+
+ Gets the field number of this extension
+
+
+
+
+ Represents a type-safe extension identifier used for getting and setting single extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The field value type of this extension
+
+
+
+ Creates a new extension identifier with the specified field number and codec
+
+
+
+
+ Represents a type-safe extension identifier used for getting repeated extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The repeated field value type of this extension
+
+
+
+ Creates a new repeated extension identifier with the specified field number and codec
+
+
+
+
+ Provides extensions to messages while parsing. This API is experimental and subject to change.
+
+
+
+
+ Creates a new empty extension registry
+
+
+
+
+ Gets the total number of extensions in this extension registry
+
+
+
+
+ Returns whether the registry is readonly
+
+
+
+
+ Adds the specified extension to the registry
+
+
+
+
+ Adds the specified extensions to the registry
+
+
+
+
+ Clears the registry of all values
+
+
+
+
+ Gets whether the extension registry contains the specified extension
+
+
+
+
+ Copies the arrays in the registry set to the specified array at the specified index
+
+ The array to copy to
+ The array index to start at
+
+
+
+ Returns an enumerator to enumerate through the items in the registry
+
+ Returns an enumerator for the extensions in this registry
+
+
+
+ Removes the specified extension from the set
+
+ The extension
+ true if the extension was removed, otherwise false
+
+
+
+ Clones the registry into a new registry
+
+
+
+
+ Methods for managing s with null checking.
+
+ Most users will not use this class directly and its API is experimental and subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if it doesn't exist in this set
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it doesn't exist
+
+
+
+
+ Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null.
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Merges the second set into the first set, creating a new instance if first is null
+
+
+
+
+ Clones the set into a new set. If the set is null, this returns null
+
+
+
+
+ Used for keeping track of extensions in messages.
+ methods route to this set.
+
+ Most users will not need to use this class directly
+
+ The message type that extensions in this set target
+
+
+
+ Gets a hash code of the set
+
+
+
+
+ Returns whether this set is equal to the other object
+
+
+
+
+ Calculates the size of this extension set
+
+
+
+
+ Writes the extension values in this set to the output stream
+
+
+
+
+ Writes the extension values in this set to the write context
+
+
+
+
+ Factory methods for .
+
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a message field with the given tag.
+
+ The tag.
+ A parser to use for the message type.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a group field with the given tag.
+
+ The start group tag.
+ The end group tag.
+ A parser to use for the group message type.
+ A codec for given tag
+
+
+
+ Creates a codec for a wrapper type of a class - which must be string or ByteString.
+
+
+
+
+ Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64,
+ Bool, Single or Double.
+
+
+
+
+ Helper code to create codecs for wrapper types.
+
+
+ Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it
+ slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place,
+ we can refactor later if we come up with something cleaner.
+
+
+
+
+ Returns a field codec which effectively wraps a value of type T in a message.
+
+
+
+
+
+
+ An encode/decode pair for a single field. This effectively encapsulates
+ all the information needed to read or write the field value from/to a coded
+ stream.
+
+
+ This class is public and has to be as it is used by generated code, but its public
+ API is very limited - just what the generated code needs to call directly.
+
+
+
+ This never writes default values to the stream, and does not address "packedness"
+ in repeated fields itself, other than to know whether or not the field *should* be packed.
+
+
+
+
+ Merges an input stream into a value
+
+
+
+
+ Merges a value into a reference to another value, returning a boolean if the value was set
+
+
+
+
+ Returns a delegate to write a value (unconditionally) to a coded output stream.
+
+
+
+
+ Returns the size calculator for just a value.
+
+
+
+
+ Returns a delegate to read a value from a coded input stream. It is assumed that
+ the stream is already positioned on the appropriate tag.
+
+
+
+
+ Returns a delegate to merge a value from a coded input stream.
+ It is assumed that the stream is already positioned on the appropriate tag
+
+
+
+
+ Returns a delegate to merge two values together.
+
+
+
+
+ Returns the fixed size for an entry, or 0 if sizes vary.
+
+
+
+
+ Gets the tag of the codec.
+
+
+ The tag of the codec.
+
+
+
+
+ Gets the end tag of the codec or 0 if there is no end tag
+
+
+ The end tag of the codec.
+
+
+
+
+ Default value for this codec. Usually the same for every instance of the same type, but
+ for string/ByteString wrapper fields the codec's default value is null, whereas for
+ other string/ByteString fields it's "" or ByteString.Empty.
+
+
+ The default value of the codec's type.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Reads a value of the codec type from the given .
+
+ The input stream to read from.
+ The value read from the stream.
+
+
+
+ Reads a value of the codec type from the given .
+
+ The parse context to read from.
+ The value read.
+
+
+
+ Calculates the size required to write the given value, with a tag,
+ if the value is not the default.
+
+
+
+
+ Calculates the size required to write the given value, with a tag, even
+ if the value is the default.
+
+
+
+
+ A tree representation of a FieldMask. Each leaf node in this tree represent
+ a field path in the FieldMask.
+
+ For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be:
+
+ [root] -+- foo -+- bar
+ | |
+ | +- baz
+ |
+ +- bar --- baz
+
+
+ By representing FieldMasks with this tree structure we can easily convert
+ a FieldMask to a canonical form, merge two FieldMasks, calculate the
+ intersection to two FieldMasks and traverse all fields specified by the
+ FieldMask in a message tree.
+
+
+
+
+ Creates an empty FieldMaskTree.
+
+
+
+
+ Creates a FieldMaskTree for a given FieldMask.
+
+
+
+
+ Adds a field path to the tree. In a FieldMask, every field path matches the
+ specified field as well as all its sub-fields. For example, a field path
+ "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding
+ a field path to the tree, redundant sub-paths will be removed. That is,
+ after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it
+ exists, which will turn the tree node for "foo.bar" to a leaf node.
+ Likewise, if the field path to add is a sub-path of an existing leaf node,
+ nothing will be changed in the tree.
+
+
+
+
+ Merges all field paths in a FieldMask into this tree.
+
+
+
+
+ Converts this tree to a FieldMask.
+
+
+
+
+ Gathers all field paths in a sub-tree.
+
+
+
+
+ Adds the intersection of this tree with the given to .
+
+
+
+
+ Merges all fields specified by this FieldMaskTree from to .
+
+
+
+
+ Merges all fields specified by a sub-tree from to .
+
+
+
+
+ Class containing helpful workarounds for various platform compatibility
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ parsing from and writing to .
+
+
+
+
+ Internal implementation of merging data from given parse context into this message.
+ Users should never invoke this method directly.
+
+
+
+
+ Internal implementation of writing this message to a given write context.
+ Users should never invoke this method directly.
+
+
+
+
+ A message type that has a custom string format for diagnostic purposes.
+
+
+
+ Calling on a generated message type normally
+ returns the JSON representation. If a message type implements this interface,
+ then the method will be called instead of the regular
+ JSON formatting code, but only when ToString() is called either on the message itself
+ or on another message which contains it. This does not affect the normal JSON formatting of
+ the message.
+
+
+ For example, if you create a proto message representing a GUID, the internal
+ representation may be a bytes field or four fixed32 fields. However, when debugging
+ it may be more convenient to see a result in the same format as provides.
+
+ This interface extends to avoid it accidentally being implemented
+ on types other than messages, where it would not be used by anything in the framework.
+
+
+
+
+ Returns a string representation of this object, for diagnostic purposes.
+
+
+ This method is called when a message is formatted as part of a
+ call. It does not affect the JSON representation used by other than
+ in calls to . While it is recommended
+ that the result is valid JSON, this is never assumed by the Protobuf library.
+
+ A string representation of this object, for diagnostic purposes.
+
+
+
+ Generic interface for a deeply cloneable type.
+
+
+
+ All generated messages implement this interface, but so do some non-message types.
+ Additionally, due to the type constraint on T in ,
+ it is simpler to keep this as a separate interface.
+
+
+ The type itself, returned by the method.
+
+
+
+ Creates a deep clone of this object.
+
+ A deep clone of this object.
+
+
+
+ Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class.
+ This interface is experiemental and is subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if the extension isn't registered in this set.
+ For a version of this method that never returns null, use
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it hasn't already been registered.
+
+
+
+
+ Sets the value of the specified extension
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified repeated extension
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ basic operations required for serialization.
+
+
+
+
+ Merges the data from the specified coded input stream with the current message.
+
+ See the user guide for precise merge semantics.
+
+
+
+
+ Writes the data to the given coded output stream.
+
+ Coded output stream to write the data to. Must not be null.
+
+
+
+ Calculates the size of this message in Protocol Buffer wire format, in bytes.
+
+ The number of bytes required to write this message
+ to a coded output stream.
+
+
+
+ Descriptor for this message. All instances are expected to return the same descriptor,
+ and for generated types this will be an explicitly-implemented member, returning the
+ same value as the static property declared on the type.
+
+
+
+
+ Generic interface for a Protocol Buffers message,
+ where the type parameter is expected to be the same type as
+ the implementation class.
+
+ The message type.
+
+
+
+ Merges the given message into this one.
+
+ See the user guide for precise merge semantics.
+ The message to merge with this one. Must not be null.
+
+
+
+ Thrown when an attempt is made to parse invalid JSON, e.g. using
+ a non-string property key, or including a redundant comma. Parsing a protocol buffer
+ message represented in JSON using can throw both this
+ exception and depending on the situation. This
+ exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException
+ is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer
+ message.
+
+
+
+
+ Thrown when a protocol message being parsed is invalid in some way,
+ e.g. it contains a malformed varint or a negative byte length.
+
+
+
+
+ Creates an exception for an error condition of an invalid tag being encountered.
+
+
+
+
+ Reflection-based converter from messages to JSON.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON formatting working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ The JSON representation of the first 160 characters of Unicode.
+ Empty strings are replaced by the static constructor.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The formatted message.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The TextWriter to write the formatted message to.
+ The formatted message.
+
+
+
+ Converts a message to JSON for diagnostic purposes with no extra context.
+
+
+
+ This differs from calling on the default JSON
+ formatter in its handling of . As no type registry is available
+ in calls, the normal way of resolving the type of
+ an Any message cannot be applied. Instead, a JSON property named @value
+ is included with the base64 data from the property of the message.
+
+ The value returned by this method is only designed to be used for diagnostic
+ purposes. It may not be parsable by , and may not be parsable
+ by other Protocol Buffer implementations.
+
+ The message to format for diagnostic purposes.
+ The diagnostic-only JSON representation of the message
+
+
+
+ Determines whether or not a field value should be serialized according to the field,
+ its value in the message, and the settings of this formatter.
+
+
+
+
+ Writes a single value to the given writer as JSON. Only types understood by
+ Protocol Buffers can be written in this way. This method is only exposed for
+ advanced use cases; most users should be using
+ or .
+
+ The writer to write the value to. Must not be null.
+ The value to write. May be null.
+
+
+
+ Central interception point for well-known type formatting. Any well-known types which
+ don't need special handling can fall back to WriteMessage. We avoid assuming that the
+ values are using the embedded well-known types, in order to allow for dynamic messages
+ in the future.
+
+
+
+
+ Writes a string (including leading and trailing double quotes) to a builder, escaping as required.
+
+
+ Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc.
+
+
+
+
+ Settings controlling JSON formatting.
+
+
+
+
+ Default settings, as used by
+
+
+
+
+ Whether fields which would otherwise not be included in the formatted data
+ should be formatted even when the value is not present, or has the default value.
+ This option only affects fields which don't support "presence" (e.g.
+ singular non-optional proto3 primitive fields).
+
+
+
+
+ The type registry used to format messages.
+
+
+
+
+ Whether to format enums as ints. Defaults to false.
+
+
+
+
+ Whether to use the original proto field names as defined in the .proto file. Defaults to false.
+
+
+
+
+ Creates a new object with the specified formatting of default values
+ and an empty type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified formatting of default values
+ and type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified parameters.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages. TypeRegistry.Empty will be used if it is null.
+ true to format the enums as integers; false to format enums as enum names.
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Creates a new object with the specified formatting of default values and the current settings.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified type registry and the current settings.
+
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified enums formatting option and the current settings.
+
+ true to format the enums as integers; false to format enums as enum names.
+
+
+
+ Creates a new object with the specified field name formatting option and the current settings.
+
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Reflection-based converter from JSON to messages.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON parsing working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Parses and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ The JSON to parse.
+
+
+
+ Parses JSON read from and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ Reader providing the JSON to parse.
+
+
+
+ Merges the given message using data from the given tokenizer. In most cases, the next
+ token should be a "start object" token, but wrapper types and nullity can invalidate
+ that assumption. This is implemented as an LL(1) recursive descent parser over the stream
+ of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the
+ tokenizer performing that validation - but not every token stream is valid "protobuf JSON".
+
+
+
+
+ Parses into a new message.
+
+ The type of message to create.
+ The JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ The type of message to create.
+ Reader providing the JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses into a new message.
+
+ The JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ Reader providing the JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new instance of the message type for the given field.
+
+
+
+
+ Checks that any infinite/NaN values originated from the correct text.
+ This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the
+ way that Mono parses out-of-range values as infinity.
+
+
+
+
+ Settings controlling JSON parsing.
+
+
+
+
+ Default settings, as used by . This has the same default
+ recursion limit as , and an empty type registry.
+
+
+
+
+ The maximum depth of messages to parse. Note that this limit only applies to parsing
+ messages, not collections - so a message within a collection within a message only counts as
+ depth 2, not 3.
+
+
+
+
+ The type registry used to parse messages.
+
+
+
+
+ Whether the parser should ignore unknown fields (true) or throw an exception when
+ they are encountered (false).
+
+
+
+
+ Creates a new object with the specified recursion limit.
+
+ The maximum depth of messages to parse
+
+
+
+ Creates a new object with the specified recursion limit and type registry.
+
+ The maximum depth of messages to parse
+ The type registry used to parse messages
+
+
+
+ Creates a new object set to either ignore unknown fields, or throw an exception
+ when unknown fields are encountered.
+
+ true if unknown fields should be ignored when parsing; false to throw an exception.
+
+
+
+ Creates a new object based on this one, but with the specified recursion limit.
+
+ The new recursion limit.
+
+
+
+ Creates a new object based on this one, but with the specified type registry.
+
+ The new type registry. Must not be null.
+
+
+
+ Simple but strict JSON tokenizer, rigidly following RFC 7159.
+
+
+
+ This tokenizer is stateful, and only returns "useful" tokens - names, values etc.
+ It does not create tokens for the separator between names and values, or for the comma
+ between values. It validates the token stream as it goes - so callers can assume that the
+ tokens it produces are appropriate. For example, it would never produce "start object, end array."
+
+ Implementation details: the base class handles single token push-back and
+ Not thread-safe.
+
+
+
+
+ Creates a tokenizer that reads from the given text reader.
+
+
+
+
+ Creates a tokenizer that first replays the given list of tokens, then continues reading
+ from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back
+ on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was
+ created for the sake of Any parsing.
+
+
+
+
+ Returns the depth of the stack, purely in objects (not collections).
+ Informally, this is the number of remaining unclosed '{' characters we have.
+
+
+
+
+ Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream,
+ after which point Next() should not be called again.
+
+ This implementation provides single-token buffering, and calls if there is no buffered token.
+ The next token in the stream. This is never null.
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Returns the next JSON token in the stream, when requested by the base class. (The method delegates
+ to this if it doesn't have a buffered token.)
+
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Skips the value we're about to read. This must only be called immediately after reading a property name.
+ If the value is an object or an array, the complete object/array is skipped.
+
+
+
+
+ Tokenizer which first exhausts a list of tokens, then consults another tokenizer.
+
+
+
+
+ Tokenizer which does all the *real* work of parsing JSON.
+
+
+
+
+ This method essentially just loops through characters skipping whitespace, validating and
+ changing state (e.g. from ObjectBeforeColon to ObjectAfterColon)
+ until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point
+ it returns the token. Although the method is large, it would be relatively hard to break down further... most
+ of it is the large switch statement, which sometimes returns and sometimes doesn't.
+
+
+
+
+ Reads a string token. It is assumed that the opening " has already been read.
+
+
+
+
+ Reads an escaped character. It is assumed that the leading backslash has already been read.
+
+
+
+
+ Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read.
+
+
+
+
+ Consumes a text-only literal, throwing an exception if the read text doesn't match it.
+ It is assumed that the first letter of the literal has already been read.
+
+
+
+
+ Validates that we're in a valid state to read a value (using the given error prefix if necessary)
+ and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty.
+
+
+
+
+ Pops the top-most container, and sets the state to the appropriate one for the end of a value
+ in the parent container.
+
+
+
+
+ Possible states of the tokenizer.
+
+
+ This is a flags enum purely so we can simply and efficiently represent a set of valid states
+ for checking.
+
+ Each is documented with an example,
+ where ^ represents the current position within the text stream. The examples all use string values,
+ but could be any value, including nested objects/arrays.
+ The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects).
+ Any additional notional state of "AfterValue" indicates that a value has been completed, at which
+ point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue.
+
+
+ These states were derived manually by reading RFC 7159 carefully.
+
+
+
+
+
+ ^ { "foo": "bar" }
+ Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue"
+
+
+
+
+ { "foo": "bar" } ^
+ After the value in a document. Next states: ReaderExhausted
+
+
+
+
+ { "foo": "bar" } ^ (and already read to the end of the reader)
+ Terminal state.
+
+
+
+
+ { ^ "foo": "bar" }
+ Before the *first* property in an object.
+ Next states:
+ "AfterValue" (empty object)
+ ObjectBeforeColon (read a name)
+
+
+
+
+ { "foo" ^ : "bar", "x": "y" }
+ Next state: ObjectAfterColon
+
+
+
+
+ { "foo" : ^ "bar", "x": "y" }
+ Before any property other than the first in an object.
+ (Equivalently: after any property in an object)
+ Next states:
+ "AfterValue" (value is simple)
+ ObjectStart (value is object)
+ ArrayStart (value is array)
+
+
+
+
+ { "foo" : "bar" ^ , "x" : "y" }
+ At the end of a property, so expecting either a comma or end-of-object
+ Next states: ObjectAfterComma or "AfterValue"
+
+
+
+
+ { "foo":"bar", ^ "x":"y" }
+ Read the comma after the previous property, so expecting another property.
+ This is like ObjectStart, but closing brace isn't valid here
+ Next state: ObjectBeforeColon.
+
+
+
+
+ [ ^ "foo", "bar" ]
+ Before the *first* value in an array.
+ Next states:
+ "AfterValue" (read a value)
+ "AfterValue" (end of array; will pop stack)
+
+
+
+
+ [ "foo" ^ , "bar" ]
+ After any value in an array, so expecting either a comma or end-of-array
+ Next states: ArrayAfterComma or "AfterValue"
+
+
+
+
+ [ "foo", ^ "bar" ]
+ After a comma in an array, so there *must* be another value (simple or complex).
+ Next states: "AfterValue" (simple value), StartObject, StartArray
+
+
+
+
+ Wrapper around a text reader allowing small amounts of buffering and location handling.
+
+
+
+
+ The buffered next character, if we have one.
+
+
+
+
+ Returns the next character in the stream, or null if we have reached the end.
+
+
+
+
+
+ Creates a new exception appropriate for the current state of the reader.
+
+
+
+
+ Stream implementation which proxies another stream, only allowing a certain amount
+ of data to be read. Note that this is only used to read delimited streams, so it
+ doesn't attempt to implement everything.
+
+
+
+
+ Extension methods on and .
+
+
+
+
+ Merges data from the given byte array into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given byte array slice into an existing message.
+
+ The message to merge the data into.
+ The data containing the slice to merge, which must be protobuf-encoded binary data.
+ The offset of the slice to merge.
+ The length of the slice to merge.
+
+
+
+ Merges data from the given byte string into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given stream into an existing message.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given span into an existing message.
+
+ The message to merge the data into.
+ Span containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges length-delimited data from the given stream into an existing message.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Converts the given message into a byte array in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte array.
+
+
+
+ Writes the given message data to the given stream in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the length and then data of the given message to a stream.
+
+ The message to write.
+ The output stream to write to.
+
+
+
+ Converts the given message into a byte string in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte string.
+
+
+
+ Writes the given message data to the given buffer writer in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the given message data to the given span in protobuf encoding.
+ The size of the destination span needs to fit the serialized size
+ of the message exactly, otherwise an exception is thrown.
+
+ The message to write to the stream.
+ The span to write to. Size must match size of the message exactly.
+
+
+
+ Checks if all required fields in a message have values set. For proto3 messages, this returns true
+
+
+
+
+ A general message parser, typically used by reflection-based code as all the methods
+ return simple .
+
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ A parser for a specific message type.
+
+
+
+ This delegates most behavior to the
+ implementation within the original type, but
+ provides convenient overloads to parse from a variety of sources.
+
+
+ Most applications will never need to create their own instances of this type;
+ instead, use the static Parser property of a generated message type to obtain a
+ parser for that type.
+
+
+ The type of message to be parsed.
+
+
+
+ Creates a new parser.
+
+
+ The factory method is effectively an optimization over using a generic constraint
+ to require a parameterless constructor: delegates are significantly faster to execute.
+
+ Function to invoke when a new, empty message is required.
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the
+ extensionByNumber table in ExtensionRegistry.
+
+
+
+
+ An opaque struct that represents the current parsing state and is passed along
+ as the parsing proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Initialize a , building all from defaults and
+ the given .
+
+
+
+
+ Initialize a using existing , e.g. from .
+
+
+
+
+ Creates a ParseContext instance from CodedInputStream.
+ WARNING: internally this copies the CodedInputStream's state, so after done with the ParseContext,
+ the CodedInputStream's state needs to be updated.
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the input.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of input".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputReader; it may be the end of the logical input
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of input. (0 is never a valid tag.)
+
+
+
+ Reads a double field from the input.
+
+
+
+
+ Reads a float field from the input.
+
+
+
+
+ Reads a uint64 field from the input.
+
+
+
+
+ Reads an int64 field from the input.
+
+
+
+
+ Reads an int32 field from the input.
+
+
+
+
+ Reads a fixed64 field from the input.
+
+
+
+
+ Reads a fixed32 field from the input.
+
+
+
+
+ Reads a bool field from the input.
+
+
+
+
+ Reads a string field from the input.
+
+
+
+
+ Reads an embedded message field value from the input.
+
+
+
+
+ Reads an embedded group field from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a uint32 field value from the input.
+
+
+
+
+ Reads an enum field value from the input.
+
+
+
+
+ Reads an sfixed32 field value from the input.
+
+
+
+
+ Reads an sfixed64 field value from the input.
+
+
+
+
+ Reads an sint32 field value from the input.
+
+
+
+
+ Reads an sint64 field value from the input.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ The position within the current buffer (i.e. the next byte to read)
+
+
+
+
+ Size of the current buffer
+
+
+
+
+ If we are currently inside a length-delimited block, this is the number of
+ bytes in the buffer that are still available once we leave the delimited block.
+
+
+
+
+ The absolute position of the end of the current length-delimited block (including totalBytesRetired)
+
+
+
+
+ The total number of consumed before the start of the current buffer. The
+ total bytes read up to the current position can be computed as
+ totalBytesRetired + bufferPos.
+
+
+
+
+ The last tag we read. 0 indicates we've read to the end of the stream
+ (or haven't read anything yet).
+
+
+
+
+ The next tag, used to store the value read by PeekTag.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Primitives for parsing protobuf wire format.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Parses the next tag.
+ If the end of logical stream was reached, an invalid tag of 0 is returned.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Parses a raw varint.
+
+
+
+
+ Parses a raw Varint. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Parses a 32-bit little-endian integer.
+
+
+
+
+ Parses a 64-bit little-endian integer.
+
+
+
+
+ Parses a double value.
+
+
+
+
+ Parses a float value.
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads and discards bytes.
+
+ the end of the stream
+ or the current limit was reached
+
+
+
+ Reads a string field value from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a UTF-8 string from the next "length" bytes.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a string assuming that it is spread across multiple spans in a .
+
+
+
+
+ Validates that the specified size doesn't exceed the current limit. If it does then remaining bytes
+ are skipped and an error is thrown.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Decode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 32 bits to be varint encoded, thus always taking
+ 5 bytes on the wire.)
+
+
+
+
+ Decode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse.
+ When parsing from a Stream this can return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse
+ in the underlying data source.
+ When parsing from a Stream this will return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Read raw bytes of the specified length into a span. The amount of data available and the current limit should
+ be checked before calling this method.
+
+
+
+
+ Reading and skipping messages / groups
+
+
+
+
+ Skip a group.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Fast parsing primitives for wrapper types
+
+
+
+
+ Helper methods for throwing exceptions when preconditions are not met.
+
+
+ This class is used internally and by generated code; it is not particularly
+ expected to be used from application code, although nothing prevents it
+ from being used that way.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+ This is equivalent to but without the type parameter
+ constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
+ with a value type - but it gets in the way if either you want to use it with a nullable
+ value type, or you want to use it with an unconstrained type parameter.
+
+
+
+
+ Container for a set of custom options specified within a message, field etc.
+
+
+
+ This type is publicly immutable, but internally mutable. It is only populated
+ by the descriptor parsing code - by the time any user code is able to see an instance,
+ it will be fully initialized.
+
+
+ If an option is requested using the incorrect method, an answer may still be returned: all
+ of the numeric types are represented internally using 64-bit integers, for example. It is up to
+ the caller to ensure that they make the appropriate method call for the option they're interested in.
+ Note that enum options are simply stored as integers, so the value should be fetched using
+ and then cast appropriately.
+
+
+ Repeated options are currently not supported. Asking for a single value of an option
+ which was actually repeated will return the last value, except for message types where
+ all the set values are merged together.
+
+
+
+
+
+ Retrieves a Boolean value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 32-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 64-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a string value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a bytes value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a message value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+ Holder for reflection information generated from google/protobuf/descriptor.proto
+
+
+ File descriptor for google/protobuf/descriptor.proto
+
+
+
+ The protocol compiler can output a FileDescriptorSet containing the .proto
+ files it parses.
+
+
+
+ Field number for the "file" field.
+
+
+
+ Describes a complete .proto file.
+
+
+
+ Field number for the "name" field.
+
+
+
+ file name, relative to root of source tree
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "package" field.
+
+
+
+ e.g. "foo", "foo.bar", etc.
+
+
+
+ Gets whether the "package" field is set
+
+
+ Clears the value of the "package" field
+
+
+ Field number for the "dependency" field.
+
+
+
+ Names of files imported by this file.
+
+
+
+ Field number for the "public_dependency" field.
+
+
+
+ Indexes of the public imported files in the dependency list above.
+
+
+
+ Field number for the "weak_dependency" field.
+
+
+
+ Indexes of the weak imported files in the dependency list.
+ For Google-internal migration only. Do not use.
+
+
+
+ Field number for the "message_type" field.
+
+
+
+ All top-level definitions in this file.
+
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "service" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "source_code_info" field.
+
+
+
+ This field contains optional information about the original source code.
+ You may safely remove this entire field without harming runtime
+ functionality of the descriptors -- the information is needed only by
+ development tools.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The syntax of the proto file.
+ The supported values are "proto2" and "proto3".
+
+
+
+ Gets whether the "syntax" field is set
+
+
+ Clears the value of the "syntax" field
+
+
+
+ Describes a message type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "field" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "nested_type" field.
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "extension_range" field.
+
+
+ Field number for the "oneof_decl" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved field names, which may not be used by fields in the same message.
+ A given name may only be reserved once.
+
+
+
+ Container for nested types declared in the DescriptorProto message type.
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "options" field.
+
+
+
+ Range of reserved tag numbers. Reserved tag numbers may not be used by
+ fields or extension ranges in the same message. Reserved ranges may
+ not overlap.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+
+ Describes a field within a message.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "label" field.
+
+
+ Gets whether the "label" field is set
+
+
+ Clears the value of the "label" field
+
+
+ Field number for the "type" field.
+
+
+
+ If type_name is set, this need not be set. If both this and type_name
+ are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "type_name" field.
+
+
+
+ For message and enum types, this is the name of the type. If the name
+ starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
+ rules are used to find the type (i.e. first the nested types within this
+ message are searched, then within the parent, on up to the root
+ namespace).
+
+
+
+ Gets whether the "type_name" field is set
+
+
+ Clears the value of the "type_name" field
+
+
+ Field number for the "extendee" field.
+
+
+
+ For extensions, this is the name of the type being extended. It is
+ resolved in the same manner as type_name.
+
+
+
+ Gets whether the "extendee" field is set
+
+
+ Clears the value of the "extendee" field
+
+
+ Field number for the "default_value" field.
+
+
+
+ For numeric types, contains the original text representation of the value.
+ For booleans, "true" or "false".
+ For strings, contains the default text contents (not escaped in any way).
+ For bytes, contains the C escaped value. All bytes >= 128 are escaped.
+
+
+
+ Gets whether the "default_value" field is set
+
+
+ Clears the value of the "default_value" field
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ If set, gives the index of a oneof in the containing type's oneof_decl
+ list. This field is a member of that oneof.
+
+
+
+ Gets whether the "oneof_index" field is set
+
+
+ Clears the value of the "oneof_index" field
+
+
+ Field number for the "json_name" field.
+
+
+
+ JSON name of this field. The value is set by protocol compiler. If the
+ user has set a "json_name" option on this field, that option's value
+ will be used. Otherwise, it's deduced from the field's name by converting
+ it to camelCase.
+
+
+
+ Gets whether the "json_name" field is set
+
+
+ Clears the value of the "json_name" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "proto3_optional" field.
+
+
+
+ If true, this is a proto3 "optional". When a proto3 field is optional, it
+ tracks presence regardless of field type.
+
+ When proto3_optional is true, this field must be belong to a oneof to
+ signal to old proto3 clients that presence is tracked for this field. This
+ oneof is known as a "synthetic" oneof, and this field must be its sole
+ member (each proto3 optional field gets its own synthetic oneof). Synthetic
+ oneofs exist in the descriptor only, and do not generate any API. Synthetic
+ oneofs must be ordered after all "real" oneofs.
+
+ For message fields, proto3_optional doesn't create any semantic change,
+ since non-repeated message fields always track presence. However it still
+ indicates the semantic detail of whether the user wrote "optional" or not.
+ This can be useful for round-tripping the .proto file. For consistency we
+ give message fields a synthetic oneof also, even though it is not required
+ to track presence. This is especially important because the parser can't
+ tell if a field is a message or an enum, so it must always create a
+ synthetic oneof.
+
+ Proto2 optional fields do not set this flag, because they already indicate
+ optional with `LABEL_OPTIONAL`.
+
+
+
+ Gets whether the "proto3_optional" field is set
+
+
+ Clears the value of the "proto3_optional" field
+
+
+ Container for nested types declared in the FieldDescriptorProto message type.
+
+
+
+ 0 is reserved for errors.
+ Order is weird for historical reasons.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
+ negative values are likely.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
+ negative values are likely.
+
+
+
+
+ Tag-delimited aggregate.
+ Group type is deprecated and not supported in proto3. However, Proto3
+ implementations should still be able to parse the group wire format and
+ treat group fields as unknown fields.
+
+
+
+
+ Length-delimited aggregate.
+
+
+
+
+ New in version 2.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ 0 is reserved for errors
+
+
+
+
+ Describes a oneof.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes an enum type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+
+ Range of reserved numeric values. Reserved numeric values may not be used
+ by enum values in the same enum declaration. Reserved ranges may not
+ overlap.
+
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved enum value names, which may not be reused. A given name may only
+ be reserved once.
+
+
+
+ Container for nested types declared in the EnumDescriptorProto message type.
+
+
+
+ Range of reserved numeric values. Reserved values may not be used by
+ entries in the same enum. Reserved ranges may not overlap.
+
+ Note that this is distinct from DescriptorProto.ReservedRange in that it
+ is inclusive such that it can appropriately represent the entire int32
+ domain.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Describes a value within an enum.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "method" field.
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a method of a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "input_type" field.
+
+
+
+ Input and output type names. These are resolved in the same way as
+ FieldDescriptorProto.type_name, but must refer to a message type.
+
+
+
+ Gets whether the "input_type" field is set
+
+
+ Clears the value of the "input_type" field
+
+
+ Field number for the "output_type" field.
+
+
+ Gets whether the "output_type" field is set
+
+
+ Clears the value of the "output_type" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "client_streaming" field.
+
+
+
+ Identifies if client streams multiple client messages
+
+
+
+ Gets whether the "client_streaming" field is set
+
+
+ Clears the value of the "client_streaming" field
+
+
+ Field number for the "server_streaming" field.
+
+
+
+ Identifies if server streams multiple server messages
+
+
+
+ Gets whether the "server_streaming" field is set
+
+
+ Clears the value of the "server_streaming" field
+
+
+ Field number for the "java_package" field.
+
+
+
+ Sets the Java package where classes generated from this .proto will be
+ placed. By default, the proto package is used, but this is often
+ inappropriate because proto packages do not normally start with backwards
+ domain names.
+
+
+
+ Gets whether the "java_package" field is set
+
+
+ Clears the value of the "java_package" field
+
+
+ Field number for the "java_outer_classname" field.
+
+
+
+ Controls the name of the wrapper Java class generated for the .proto file.
+ That class will always contain the .proto file's getDescriptor() method as
+ well as any top-level extensions defined in the .proto file.
+ If java_multiple_files is disabled, then all the other classes from the
+ .proto file will be nested inside the single wrapper outer class.
+
+
+
+ Gets whether the "java_outer_classname" field is set
+
+
+ Clears the value of the "java_outer_classname" field
+
+
+ Field number for the "java_multiple_files" field.
+
+
+
+ If enabled, then the Java code generator will generate a separate .java
+ file for each top-level message, enum, and service defined in the .proto
+ file. Thus, these types will *not* be nested inside the wrapper class
+ named by java_outer_classname. However, the wrapper class will still be
+ generated to contain the file's getDescriptor() method as well as any
+ top-level extensions defined in the file.
+
+
+
+ Gets whether the "java_multiple_files" field is set
+
+
+ Clears the value of the "java_multiple_files" field
+
+
+ Field number for the "java_generate_equals_and_hash" field.
+
+
+
+ This option does nothing.
+
+
+
+ Gets whether the "java_generate_equals_and_hash" field is set
+
+
+ Clears the value of the "java_generate_equals_and_hash" field
+
+
+ Field number for the "java_string_check_utf8" field.
+
+
+
+ If set true, then the Java2 code generator will generate code that
+ throws an exception whenever an attempt is made to assign a non-UTF-8
+ byte sequence to a string field.
+ Message reflection will do the same.
+ However, an extension field still accepts non-UTF-8 byte sequences.
+ This option has no effect on when used with the lite runtime.
+
+
+
+ Gets whether the "java_string_check_utf8" field is set
+
+
+ Clears the value of the "java_string_check_utf8" field
+
+
+ Field number for the "optimize_for" field.
+
+
+ Gets whether the "optimize_for" field is set
+
+
+ Clears the value of the "optimize_for" field
+
+
+ Field number for the "go_package" field.
+
+
+
+ Sets the Go package where structs generated from this .proto will be
+ placed. If omitted, the Go package will be derived from the following:
+ - The basename of the package import path, if provided.
+ - Otherwise, the package statement in the .proto file, if present.
+ - Otherwise, the basename of the .proto file, without extension.
+
+
+
+ Gets whether the "go_package" field is set
+
+
+ Clears the value of the "go_package" field
+
+
+ Field number for the "cc_generic_services" field.
+
+
+
+ Should generic services be generated in each language? "Generic" services
+ are not specific to any particular RPC system. They are generated by the
+ main code generators in each language (without additional plugins).
+ Generic services were the only kind of service generation supported by
+ early versions of google.protobuf.
+
+ Generic services are now considered deprecated in favor of using plugins
+ that generate code specific to your particular RPC system. Therefore,
+ these default to false. Old code which depends on generic services should
+ explicitly set them to true.
+
+
+
+ Gets whether the "cc_generic_services" field is set
+
+
+ Clears the value of the "cc_generic_services" field
+
+
+ Field number for the "java_generic_services" field.
+
+
+ Gets whether the "java_generic_services" field is set
+
+
+ Clears the value of the "java_generic_services" field
+
+
+ Field number for the "py_generic_services" field.
+
+
+ Gets whether the "py_generic_services" field is set
+
+
+ Clears the value of the "py_generic_services" field
+
+
+ Field number for the "php_generic_services" field.
+
+
+ Gets whether the "php_generic_services" field is set
+
+
+ Clears the value of the "php_generic_services" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this file deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for everything in the file, or it will be completely ignored; in the very
+ least, this is a formalization for deprecating files.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "cc_enable_arenas" field.
+
+
+
+ Enables the use of arenas for the proto messages in this file. This applies
+ only to generated classes for C++.
+
+
+
+ Gets whether the "cc_enable_arenas" field is set
+
+
+ Clears the value of the "cc_enable_arenas" field
+
+
+ Field number for the "objc_class_prefix" field.
+
+
+
+ Sets the objective c class prefix which is prepended to all objective c
+ generated classes from this .proto. There is no default.
+
+
+
+ Gets whether the "objc_class_prefix" field is set
+
+
+ Clears the value of the "objc_class_prefix" field
+
+
+ Field number for the "csharp_namespace" field.
+
+
+
+ Namespace for generated classes; defaults to the package.
+
+
+
+ Gets whether the "csharp_namespace" field is set
+
+
+ Clears the value of the "csharp_namespace" field
+
+
+ Field number for the "swift_prefix" field.
+
+
+
+ By default Swift generators will take the proto package and CamelCase it
+ replacing '.' with underscore and use that to prefix the types/symbols
+ defined. When this options is provided, they will use this value instead
+ to prefix the types/symbols defined.
+
+
+
+ Gets whether the "swift_prefix" field is set
+
+
+ Clears the value of the "swift_prefix" field
+
+
+ Field number for the "php_class_prefix" field.
+
+
+
+ Sets the php class prefix which is prepended to all php generated classes
+ from this .proto. Default is empty.
+
+
+
+ Gets whether the "php_class_prefix" field is set
+
+
+ Clears the value of the "php_class_prefix" field
+
+
+ Field number for the "php_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated classes. Default
+ is empty. When this option is empty, the package name will be used for
+ determining the namespace.
+
+
+
+ Gets whether the "php_namespace" field is set
+
+
+ Clears the value of the "php_namespace" field
+
+
+ Field number for the "php_metadata_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated metadata classes.
+ Default is empty. When this option is empty, the proto file name will be
+ used for determining the namespace.
+
+
+
+ Gets whether the "php_metadata_namespace" field is set
+
+
+ Clears the value of the "php_metadata_namespace" field
+
+
+ Field number for the "ruby_package" field.
+
+
+
+ Use this option to change the package of ruby generated classes. Default
+ is empty. When this option is not set, the package name will be used for
+ determining the ruby package.
+
+
+
+ Gets whether the "ruby_package" field is set
+
+
+ Clears the value of the "ruby_package" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here.
+ See the documentation for the "Options" section above.
+
+
+
+ Container for nested types declared in the FileOptions message type.
+
+
+
+ Generated classes can be optimized for speed or code size.
+
+
+
+
+ Generate complete code for parsing, serialization,
+
+
+
+
+ etc.
+
+
+
+
+ Generate code using MessageLite and the lite runtime.
+
+
+
+ Field number for the "message_set_wire_format" field.
+
+
+
+ Set true to use the old proto1 MessageSet wire format for extensions.
+ This is provided for backwards-compatibility with the MessageSet wire
+ format. You should not use this for any other reason: It's less
+ efficient, has fewer features, and is more complicated.
+
+ The message must be defined exactly as follows:
+ message Foo {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+ }
+ Note that the message cannot have any defined fields; MessageSets only
+ have extensions.
+
+ All extensions of your type must be singular messages; e.g. they cannot
+ be int32s, enums, or repeated messages.
+
+ Because this is an option, the above two restrictions are not enforced by
+ the protocol compiler.
+
+
+
+ Gets whether the "message_set_wire_format" field is set
+
+
+ Clears the value of the "message_set_wire_format" field
+
+
+ Field number for the "no_standard_descriptor_accessor" field.
+
+
+
+ Disables the generation of the standard "descriptor()" accessor, which can
+ conflict with a field of the same name. This is meant to make migration
+ from proto1 easier; new code should avoid fields named "descriptor".
+
+
+
+ Gets whether the "no_standard_descriptor_accessor" field is set
+
+
+ Clears the value of the "no_standard_descriptor_accessor" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this message deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the message, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating messages.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "map_entry" field.
+
+
+
+ Whether the message is an automatically generated map entry type for the
+ maps field.
+
+ For maps fields:
+ map<KeyType, ValueType> map_field = 1;
+ The parsed descriptor looks like:
+ message MapFieldEntry {
+ option map_entry = true;
+ optional KeyType key = 1;
+ optional ValueType value = 2;
+ }
+ repeated MapFieldEntry map_field = 1;
+
+ Implementations may choose not to generate the map_entry=true message, but
+ use a native map in the target language to hold the keys and values.
+ The reflection APIs in such implementations still need to work as
+ if the field is a repeated message field.
+
+ NOTE: Do not set the option in .proto files. Always use the maps syntax
+ instead. The option should only be implicitly set by the proto compiler
+ parser.
+
+
+
+ Gets whether the "map_entry" field is set
+
+
+ Clears the value of the "map_entry" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "ctype" field.
+
+
+
+ The ctype option instructs the C++ code generator to use a different
+ representation of the field than it normally would. See the specific
+ options below. This option is not yet implemented in the open source
+ release -- sorry, we'll try to include it in a future version!
+
+
+
+ Gets whether the "ctype" field is set
+
+
+ Clears the value of the "ctype" field
+
+
+ Field number for the "packed" field.
+
+
+
+ The packed option can be enabled for repeated primitive fields to enable
+ a more efficient representation on the wire. Rather than repeatedly
+ writing the tag and type for each element, the entire array is encoded as
+ a single length-delimited blob. In proto3, only explicit setting it to
+ false will avoid using packed encoding.
+
+
+
+ Gets whether the "packed" field is set
+
+
+ Clears the value of the "packed" field
+
+
+ Field number for the "jstype" field.
+
+
+
+ The jstype option determines the JavaScript type used for values of the
+ field. The option is permitted only for 64 bit integral and fixed types
+ (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
+ is represented as JavaScript string, which avoids loss of precision that
+ can happen when a large value is converted to a floating point JavaScript.
+ Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
+ use the JavaScript "number" type. The behavior of the default option
+ JS_NORMAL is implementation dependent.
+
+ This option is an enum to permit additional types to be added, e.g.
+ goog.math.Integer.
+
+
+
+ Gets whether the "jstype" field is set
+
+
+ Clears the value of the "jstype" field
+
+
+ Field number for the "lazy" field.
+
+
+
+ Should this field be parsed lazily? Lazy applies only to message-type
+ fields. It means that when the outer message is initially parsed, the
+ inner message's contents will not be parsed but instead stored in encoded
+ form. The inner message will actually be parsed when it is first accessed.
+
+ This is only a hint. Implementations are free to choose whether to use
+ eager or lazy parsing regardless of the value of this option. However,
+ setting this option true suggests that the protocol author believes that
+ using lazy parsing on this field is worth the additional bookkeeping
+ overhead typically needed to implement it.
+
+ This option does not affect the public interface of any generated code;
+ all method signatures remain the same. Furthermore, thread-safety of the
+ interface is not affected by this option; const methods remain safe to
+ call from multiple threads concurrently, while non-const methods continue
+ to require exclusive access.
+
+ Note that implementations may choose not to check required fields within
+ a lazy sub-message. That is, calling IsInitialized() on the outer message
+ may return true even if the inner message has missing required fields.
+ This is necessary because otherwise the inner message would have to be
+ parsed in order to perform the check, defeating the purpose of lazy
+ parsing. An implementation which chooses not to check required fields
+ must be consistent about it. That is, for any particular sub-message, the
+ implementation must either *always* check its required fields, or *never*
+ check its required fields, regardless of whether or not the message has
+ been parsed.
+
+ As of 2021, lazy does no correctness checks on the byte stream during
+ parsing. This may lead to crashes if and when an invalid byte stream is
+ finally parsed upon access.
+
+ TODO(b/211906113): Enable validation on lazy fields.
+
+
+
+ Gets whether the "lazy" field is set
+
+
+ Clears the value of the "lazy" field
+
+
+ Field number for the "unverified_lazy" field.
+
+
+
+ unverified_lazy does no correctness checks on the byte stream. This should
+ only be used where lazy with verification is prohibitive for performance
+ reasons.
+
+
+
+ Gets whether the "unverified_lazy" field is set
+
+
+ Clears the value of the "unverified_lazy" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this field deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for accessors, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating fields.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "weak" field.
+
+
+
+ For Google-internal migration only. Do not use.
+
+
+
+ Gets whether the "weak" field is set
+
+
+ Clears the value of the "weak" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the FieldOptions message type.
+
+
+
+ Default mode.
+
+
+
+
+ Use the default type.
+
+
+
+
+ Use JavaScript strings.
+
+
+
+
+ Use JavaScript numbers.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "allow_alias" field.
+
+
+
+ Set this option to true to allow mapping different tag names to the same
+ value.
+
+
+
+ Gets whether the "allow_alias" field is set
+
+
+ Clears the value of the "allow_alias" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating enums.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum value deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum value, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating enum values.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this service deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the service, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating services.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this method deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the method, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating methods.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "idempotency_level" field.
+
+
+ Gets whether the "idempotency_level" field is set
+
+
+ Clears the value of the "idempotency_level" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the MethodOptions message type.
+
+
+
+ Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
+ or neither? HTTP based RPC implementation may choose GET verb for safe
+ methods, and PUT verb for idempotent methods instead of the default POST.
+
+
+
+
+ implies idempotent
+
+
+
+
+ idempotent, but may have side effects
+
+
+
+
+ A message representing a option the parser does not recognize. This only
+ appears in options protos created by the compiler::Parser class.
+ DescriptorPool resolves these when building Descriptor objects. Therefore,
+ options protos in descriptor objects (e.g. returned by Descriptor::options(),
+ or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
+ in them.
+
+
+
+ Field number for the "name" field.
+
+
+ Field number for the "identifier_value" field.
+
+
+
+ The value of the uninterpreted option, in whatever type the tokenizer
+ identified it as during parsing. Exactly one of these should be set.
+
+
+
+ Gets whether the "identifier_value" field is set
+
+
+ Clears the value of the "identifier_value" field
+
+
+ Field number for the "positive_int_value" field.
+
+
+ Gets whether the "positive_int_value" field is set
+
+
+ Clears the value of the "positive_int_value" field
+
+
+ Field number for the "negative_int_value" field.
+
+
+ Gets whether the "negative_int_value" field is set
+
+
+ Clears the value of the "negative_int_value" field
+
+
+ Field number for the "double_value" field.
+
+
+ Gets whether the "double_value" field is set
+
+
+ Clears the value of the "double_value" field
+
+
+ Field number for the "string_value" field.
+
+
+ Gets whether the "string_value" field is set
+
+
+ Clears the value of the "string_value" field
+
+
+ Field number for the "aggregate_value" field.
+
+
+ Gets whether the "aggregate_value" field is set
+
+
+ Clears the value of the "aggregate_value" field
+
+
+ Container for nested types declared in the UninterpretedOption message type.
+
+
+
+ The name of the uninterpreted option. Each string represents a segment in
+ a dot-separated name. is_extension is true iff a segment represents an
+ extension (denoted with parentheses in options specs in .proto files).
+ E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
+ "foo.(bar.baz).moo".
+
+
+
+ Field number for the "name_part" field.
+
+
+ Gets whether the "name_part" field is set
+
+
+ Clears the value of the "name_part" field
+
+
+ Field number for the "is_extension" field.
+
+
+ Gets whether the "is_extension" field is set
+
+
+ Clears the value of the "is_extension" field
+
+
+
+ Encapsulates information about the original source file from which a
+ FileDescriptorProto was generated.
+
+
+
+ Field number for the "location" field.
+
+
+
+ A Location identifies a piece of source code in a .proto file which
+ corresponds to a particular definition. This information is intended
+ to be useful to IDEs, code indexers, documentation generators, and similar
+ tools.
+
+ For example, say we have a file like:
+ message Foo {
+ optional string foo = 1;
+ }
+ Let's look at just the field definition:
+ optional string foo = 1;
+ ^ ^^ ^^ ^ ^^^
+ a bc de f ghi
+ We have the following locations:
+ span path represents
+ [a,i) [ 4, 0, 2, 0 ] The whole field definition.
+ [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
+ [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
+ [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
+ [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
+
+ Notes:
+ - A location may refer to a repeated field itself (i.e. not to any
+ particular index within it). This is used whenever a set of elements are
+ logically enclosed in a single code segment. For example, an entire
+ extend block (possibly containing multiple extension definitions) will
+ have an outer location whose path refers to the "extensions" repeated
+ field without an index.
+ - Multiple locations may have the same path. This happens when a single
+ logical declaration is spread out across multiple places. The most
+ obvious example is the "extend" block again -- there may be multiple
+ extend blocks in the same scope, each of which will have the same path.
+ - A location's span is not always a subset of its parent's span. For
+ example, the "extendee" of an extension declaration appears at the
+ beginning of the "extend" block and is shared by all extensions within
+ the block.
+ - Just because a location's span is a subset of some other location's span
+ does not mean that it is a descendant. For example, a "group" defines
+ both a type and a field in a single declaration. Thus, the locations
+ corresponding to the type and field and their components will overlap.
+ - Code which tries to interpret locations should probably be designed to
+ ignore those that it doesn't understand, as more types of locations could
+ be recorded in the future.
+
+
+
+ Container for nested types declared in the SourceCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies which part of the FileDescriptorProto was defined at this
+ location.
+
+ Each element is a field number or an index. They form a path from
+ the root FileDescriptorProto to the place where the definition occurs.
+ For example, this path:
+ [ 4, 3, 2, 7, 1 ]
+ refers to:
+ file.message_type(3) // 4, 3
+ .field(7) // 2, 7
+ .name() // 1
+ This is because FileDescriptorProto.message_type has field number 4:
+ repeated DescriptorProto message_type = 4;
+ and DescriptorProto.field has field number 2:
+ repeated FieldDescriptorProto field = 2;
+ and FieldDescriptorProto.name has field number 1:
+ optional string name = 1;
+
+ Thus, the above path gives the location of a field name. If we removed
+ the last element:
+ [ 4, 3, 2, 7 ]
+ this path refers to the whole field declaration (from the beginning
+ of the label to the terminating semicolon).
+
+
+
+ Field number for the "span" field.
+
+
+
+ Always has exactly three or four elements: start line, start column,
+ end line (optional, otherwise assumed same as start line), end column.
+ These are packed into a single field for efficiency. Note that line
+ and column numbers are zero-based -- typically you will want to add
+ 1 to each before displaying to a user.
+
+
+
+ Field number for the "leading_comments" field.
+
+
+
+ If this SourceCodeInfo represents a complete declaration, these are any
+ comments appearing before and after the declaration which appear to be
+ attached to the declaration.
+
+ A series of line comments appearing on consecutive lines, with no other
+ tokens appearing on those lines, will be treated as a single comment.
+
+ leading_detached_comments will keep paragraphs of comments that appear
+ before (but not connected to) the current element. Each paragraph,
+ separated by empty lines, will be one comment element in the repeated
+ field.
+
+ Only the comment content is provided; comment markers (e.g. //) are
+ stripped out. For block comments, leading whitespace and an asterisk
+ will be stripped from the beginning of each line other than the first.
+ Newlines are included in the output.
+
+ Examples:
+
+ optional int32 foo = 1; // Comment attached to foo.
+ // Comment attached to bar.
+ optional int32 bar = 2;
+
+ optional string baz = 3;
+ // Comment attached to baz.
+ // Another line attached to baz.
+
+ // Comment attached to moo.
+ //
+ // Another line attached to moo.
+ optional double moo = 4;
+
+ // Detached comment for corge. This is not leading or trailing comments
+ // to moo or corge because there are blank lines separating it from
+ // both.
+
+ // Detached comment for corge paragraph 2.
+
+ optional string corge = 5;
+ /* Block comment attached
+ * to corge. Leading asterisks
+ * will be removed. */
+ /* Block comment attached to
+ * grault. */
+ optional int32 grault = 6;
+
+ // ignored detached comments.
+
+
+
+ Gets whether the "leading_comments" field is set
+
+
+ Clears the value of the "leading_comments" field
+
+
+ Field number for the "trailing_comments" field.
+
+
+ Gets whether the "trailing_comments" field is set
+
+
+ Clears the value of the "trailing_comments" field
+
+
+ Field number for the "leading_detached_comments" field.
+
+
+
+ Describes the relationship between generated code and its original source
+ file. A GeneratedCodeInfo message is associated with only one generated
+ source file, but may contain references to different source .proto files.
+
+
+
+ Field number for the "annotation" field.
+
+
+
+ An Annotation connects some span of text in generated code to an element
+ of its generating .proto file.
+
+
+
+ Container for nested types declared in the GeneratedCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies the element in the original source .proto file. This field
+ is formatted the same as SourceCodeInfo.Location.path.
+
+
+
+ Field number for the "source_file" field.
+
+
+
+ Identifies the filesystem path to the original source .proto.
+
+
+
+ Gets whether the "source_file" field is set
+
+
+ Clears the value of the "source_file" field
+
+
+ Field number for the "begin" field.
+
+
+
+ Identifies the starting offset in bytes in the generated code
+ that relates to the identified object.
+
+
+
+ Gets whether the "begin" field is set
+
+
+ Clears the value of the "begin" field
+
+
+ Field number for the "end" field.
+
+
+
+ Identifies the ending offset in bytes in the generated code that
+ relates to the identified offset. The end offset should be one past
+ the last relevant byte (so the length of the text = end - begin).
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Base class for nearly all descriptors, providing common functionality.
+
+
+
+
+ The index of this descriptor within its parent descriptor.
+
+
+ This returns the index of this descriptor within its parent, for
+ this descriptor's type. (There can be duplicate values for different
+ types, e.g. one enum type with index 0 and one message type with index 0.)
+
+
+
+
+ Returns the name of the entity (field, message etc) being described.
+
+
+
+
+ The fully qualified name of the descriptor's target.
+
+
+
+
+ The file this descriptor was declared in.
+
+
+
+
+ The declaration information about the descriptor, or null if no declaration information
+ is available for this descriptor.
+
+
+ This information is typically only available for dynamically loaded descriptors,
+ for example within a protoc plugin where the full descriptors, including source info,
+ are passed to the code by protoc.
+
+
+
+
+ Retrieves the list of nested descriptors corresponding to the given field number, if any.
+ If the field is unknown or not a nested descriptor list, return null to terminate the search.
+ The default implementation returns null.
+
+
+
+
+ Provides additional information about the declaration of a descriptor,
+ such as source location and comments.
+
+
+
+
+ The descriptor this declaration relates to.
+
+
+
+
+ The start line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The start column of the declaration within the source file. This value is 1-based.
+
+
+
+
+ // The end line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The end column of the declaration within the source file. This value is 1-based, and
+ exclusive. (The final character of the declaration is on the column before this value.)
+
+
+
+
+ Comments appearing before the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing after the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing before the declaration, but separated from it by blank
+ lines. Each string represents a newline-separated paragraph of comments.
+ Leading whitespace and the comment marker ("//") are removed from each line.
+ The list is never null, but may be empty. Likewise each element is never null, but may be empty.
+
+
+
+
+ Contains lookup tables containing all the descriptors defined in a particular file.
+
+
+
+
+ Finds a symbol of the given name within the pool.
+
+ The type of symbol to look for
+ Fully-qualified name to look up
+ The symbol with the given name and type,
+ or null if the symbol doesn't exist or has the wrong type
+
+
+
+ Adds a package to the symbol tables. If a package by the same name
+ already exists, that is fine, but if some other kind of symbol
+ exists under the same name, an exception is thrown. If the package
+ has multiple components, this also adds the parent package(s).
+
+
+
+
+ Adds a symbol to the symbol table.
+
+ The symbol already existed
+ in the symbol table.
+
+
+
+ Verifies that the descriptor's name is valid (i.e. it contains
+ only letters, digits and underscores, and does not start with a digit).
+
+
+
+
+
+ Returns the field with the given number in the given descriptor,
+ or null if it can't be found.
+
+
+
+
+ Adds a field to the fieldsByNumber table.
+
+ A field with the same
+ containing type and number already exists.
+
+
+
+ Adds an enum value to the enumValuesByNumber table. If an enum value
+ with the same type and number already exists, this method does nothing.
+ (This is allowed; the first value defined with the number takes precedence.)
+
+
+
+
+ Looks up a descriptor by name, relative to some other descriptor.
+ The name may be fully-qualified (with a leading '.'), partially-qualified,
+ or unqualified. C++-like name lookup semantics are used to search for the
+ matching descriptor.
+
+
+ This isn't heavily optimized, but it's only used during cross linking anyway.
+ If it starts being used more widely, we should look at performance more carefully.
+
+
+
+
+ Internal class containing utility methods when working with descriptors.
+
+
+
+
+ Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
+ arrays.
+
+
+
+
+ Converts the given array into a read-only list, applying the specified conversion to
+ each input element.
+
+
+
+
+ Thrown when building descriptors fails because the source DescriptorProtos
+ are not valid.
+
+
+
+
+ The full name of the descriptor where the error occurred.
+
+
+
+
+ A human-readable description of the error. (The Message property
+ is made up of the descriptor's name and this description.)
+
+
+
+
+ Descriptor for an enum type in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ The CLR type for this enum. For generated code, this will be a CLR enum type.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ An unmodifiable list of defined value descriptors for this enum.
+
+
+
+
+ Finds an enum value by number. If multiple enum values have the
+ same number, this returns the first defined value with that number.
+ If there is no value for the given number, this returns null.
+
+
+
+
+ Finds an enum value by name.
+
+ The unqualified name of the value (e.g. "FOO").
+ The value's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this enum.
+
+
+
+
+ The EnumOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum option for this descriptor
+
+
+
+
+ Gets a repeated value enum option for this descriptor
+
+
+
+
+ Descriptor for a single enum value within an enum in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum value.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum value descriptor.
+
+
+
+ Returns the name of the enum value described by this object.
+
+
+
+
+ Returns the number associated with this enum value.
+
+
+
+
+ Returns the enum descriptor that this value is part of.
+
+
+
+
+ The (possibly empty) set of custom options for this enum value.
+
+
+
+
+ The EnumValueOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum value option for this descriptor
+
+
+
+
+ Gets a repeated value enum value option for this descriptor
+
+
+
+
+ A collection to simplify retrieving the descriptors of extensions in a descriptor for a message
+
+
+
+
+ Returns a readonly list of all the extensions defined in this type in
+ the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in ascending field order
+
+
+
+
+ Base class for field accessors.
+
+
+
+
+ Descriptor for a field or extension within a message in a .proto file.
+
+
+
+
+ Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension.
+
+
+
+
+ Returns the oneof containing this field, or null if it is not part of a oneof.
+
+
+
+
+ Returns the oneof containing this field if it's a "real" oneof, or null if either this
+ field is not part of a oneof, or the oneof is synthetic.
+
+
+
+
+ The effective JSON name for this field. This is usually the lower-camel-cased form of the field name,
+ but can be overridden using the json_name option in the .proto file.
+
+
+
+
+ The name of the property in the ContainingType.ClrType class.
+
+
+
+
+ Indicates whether this field supports presence, either implicitly (e.g. due to it being a message
+ type field) or explicitly via Has/Clear members. If this returns true, it is safe to call
+ and
+ on this field's accessor with a suitable message.
+
+
+
+
+ Returns a clone of the underlying describing this field.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this field descriptor.
+
+
+
+ An extension identifier for this field, or null if this field isn't an extension.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns the accessor for this field.
+
+
+
+ While a describes the field, it does not provide
+ any way of obtaining or changing the value of the field within a specific message;
+ that is the responsibility of the accessor.
+
+
+ In descriptors for generated code, the value returned by this property will be non-null for all
+ regular fields. However, if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, and the value of the map field itself is represented by a dictionary in the
+ reflection API. There are never instances of those "hidden" messages, so no accessor is provided
+ and this property will return null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+
+
+ Maps a field type as included in the .proto file to a FieldType.
+
+
+
+
+ Returns true if this field is a repeated field; false otherwise.
+
+
+
+
+ Returns true if this field is a required field; false otherwise.
+
+
+
+
+ Returns true if this field is a map field; false otherwise.
+
+
+
+
+ Returns true if this field is a packed, repeated field; false otherwise.
+
+
+
+
+ Returns true if this field extends another message type; false otherwise.
+
+
+
+
+ Returns the type of the field.
+
+
+
+
+ Returns the field number declared in the proto file.
+
+
+
+
+ Compares this descriptor with another one, ordering in "canonical" order
+ which simply means ascending order by field number.
+ must be a field of the same type, i.e. the of
+ both fields must be the same.
+
+
+
+
+ For enum fields, returns the field's type.
+
+
+
+
+ For embedded message and group fields, returns the field's type.
+
+
+
+
+ For extension fields, returns the extended type
+
+
+
+
+ The (possibly empty) set of custom options for this field.
+
+
+
+
+ The FieldOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value field option for this descriptor
+
+
+
+
+ Gets a repeated value field option for this descriptor
+
+
+
+
+ Look up and cross-link all field types etc.
+
+
+
+
+ Enumeration of all the possible field types.
+
+
+
+
+ The double field type.
+
+
+
+
+ The float field type.
+
+
+
+
+ The int64 field type.
+
+
+
+
+ The uint64 field type.
+
+
+
+
+ The int32 field type.
+
+
+
+
+ The fixed64 field type.
+
+
+
+
+ The fixed32 field type.
+
+
+
+
+ The bool field type.
+
+
+
+
+ The string field type.
+
+
+
+
+ The field type used for groups.
+
+
+
+
+ The field type used for message fields.
+
+
+
+
+ The bytes field type.
+
+
+
+
+ The uint32 field type.
+
+
+
+
+ The sfixed32 field type.
+
+
+
+
+ The sfixed64 field type.
+
+
+
+
+ The sint32 field type.
+
+
+
+
+ The sint64 field type.
+
+
+
+
+ The field type used for enum fields.
+
+
+
+
+ The syntax of a .proto file
+
+
+
+
+ Proto2 syntax
+
+
+
+
+ Proto3 syntax
+
+
+
+
+ An unknown declared syntax
+
+
+
+
+ Describes a .proto file, including everything defined within.
+ IDescriptor is implemented such that the File property returns this descriptor,
+ and the FullName is the same as the Name.
+
+
+
+
+ Computes the full name of a descriptor within this file, with an optional parent message.
+
+
+
+
+ Extracts public dependencies from direct dependencies. This is a static method despite its
+ first parameter, as the value we're in the middle of constructing is only used for exceptions.
+
+
+
+
+ The descriptor in its protocol message representation.
+
+
+
+
+ Returns a clone of the underlying describing this file.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this file descriptor.
+
+
+
+ The syntax of the file
+
+
+
+
+ The file name.
+
+
+
+
+ The package as declared in the .proto file. This may or may not
+ be equivalent to the .NET namespace of the generated classes.
+
+
+
+
+ Unmodifiable list of top-level message types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level enum types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level services declared in this file.
+
+
+
+
+ Unmodifiable list of top-level extensions declared in this file.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if this descriptor was generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ Unmodifiable list of this file's dependencies (imports).
+
+
+
+
+ Unmodifiable list of this file's public dependencies (public imports).
+
+
+
+
+ The original serialized binary form of this descriptor.
+
+
+
+
+ Implementation of IDescriptor.FullName - just returns the same as Name.
+
+
+
+
+ Implementation of IDescriptor.File - just returns this descriptor.
+
+
+
+
+ Pool containing symbol descriptors.
+
+
+
+
+ Finds a type (message, enum, service or extension) in the file by name. Does not find nested types.
+
+ The unqualified type name to look for.
+ The type of descriptor to look for
+ The type's descriptor, or null if not found.
+
+
+
+ Builds a FileDescriptor from its protocol buffer representation.
+
+ The original serialized descriptor data.
+ We have only limited proto2 support, so serializing FileDescriptorProto
+ would not necessarily give us this.
+ The protocol message form of the FileDescriptor.
+ FileDescriptors corresponding to all of the
+ file's dependencies, in the exact order listed in the .proto file. May be null,
+ in which case it is treated as an empty array.
+ Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).
+ Details about generated code, for the purposes of reflection.
+ If is not
+ a valid descriptor. This can occur for a number of reasons, such as a field
+ having an undefined type or because two messages were defined with the same name.
+
+
+
+ Creates a descriptor for generated code.
+
+
+ This method is only designed to be used by the results of generating code with protoc,
+ which creates the appropriate dependencies etc. It has to be public because the generated
+ code is "external", but should not be called directly by end users.
+
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The extension registry to use when parsing, or null if no extensions are required.
+ The file descriptors corresponding to .
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The file descriptors corresponding to .
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns the file descriptor for descriptor.proto.
+
+
+ This is used for protos which take a direct dependency on descriptor.proto, typically for
+ annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf
+ runtime for reflection purposes. The messages are internal to the runtime as they would require
+ proto2 semantics for full support, but the file descriptor is available via this property. The
+ C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto.
+
+
+ The file descriptor for descriptor.proto.
+
+
+
+
+ The (possibly empty) set of custom options for this file.
+
+
+
+
+ The FileOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value file option for this descriptor
+
+
+
+
+ Gets a repeated value file option for this descriptor
+
+
+
+
+ Performs initialization for the given generic type argument.
+
+
+ This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated)
+ to make calls into the reflection machinery of this library to express an intention to use that type
+ reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers
+ attempting to determine which generic type arguments need to be handled will spot the code path and act
+ accordingly.
+
+ The type to force initialization for.
+
+
+
+ Extra information provided by generated code when initializing a message or file descriptor.
+ These are constructed as required, and are not long-lived. Hand-written code should
+ never need to use this type.
+
+
+
+
+ Irrelevant for file descriptors; the CLR type for the message for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the parser for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the CLR property names (in message descriptor field order)
+ for fields in the message for message descriptors.
+
+
+
+
+ The extensions defined within this file/message descriptor
+
+
+
+
+ Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order)
+ for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo",
+ there will be a "FooCase" property and a "ClearFoo" method.
+
+
+
+
+ The reflection information for types within this file/message descriptor. Elements may be null
+ if there is no corresponding generated type, e.g. for map entry types.
+
+
+
+
+ The CLR types for enums within this file/message descriptor.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums.
+
+
+
+
+ Interface implemented by all descriptor types.
+
+
+
+
+ Returns the name of the entity (message, field etc) being described.
+
+
+
+
+ Returns the fully-qualified name of the entity being described.
+
+
+
+
+ Returns the descriptor for the .proto file that this entity is part of.
+
+
+
+
+ Allows fields to be reflectively accessed.
+
+
+
+
+ Returns the descriptor associated with this field.
+
+
+
+
+ Clears the field in the specified message. (For repeated fields,
+ this clears the list.)
+
+
+
+
+ Fetches the field value. For repeated values, this will be an
+ implementation. For map values, this will be an
+ implementation.
+
+
+
+
+ Indicates whether the field in the specified message is set.
+ For proto3 fields that aren't explicitly optional, this throws an
+
+
+
+
+ Mutator for single "simple" fields only.
+
+
+ Repeated fields are mutated by fetching the value and manipulating it as a list.
+ Map fields are mutated by fetching the value and manipulating it as a dictionary.
+
+ The field is not a "simple" field.
+
+
+
+ Accessor for map fields.
+
+
+
+
+ Describes a message type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this message.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this message descriptor.
+
+
+
+ The CLR type used to represent message instances from this descriptor.
+
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the type returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ A parser for this message type.
+
+
+
+ As is not generic, this cannot be statically
+ typed to the relevant type, but it should produce objects of a type compatible with .
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. No message parser object is created for
+ such messages, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the parser returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ Returns whether this message is one of the "well known types" which may have runtime/protoc support.
+
+
+
+
+ Returns whether this message is one of the "wrapper types" used for fields which represent primitive values
+ with the addition of presence.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ A collection of fields, which can be retrieved by name or field number.
+
+
+
+
+ An unmodifiable list of extensions defined in this message's scope.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if they are declared in a file generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ An unmodifiable list of this message type's nested types.
+
+
+
+
+ An unmodifiable list of this message type's enum types.
+
+
+
+
+ An unmodifiable list of the "oneof" field collections in this message type.
+ All "real" oneofs (where returns false)
+ come before synthetic ones.
+
+
+
+
+ The number of real "oneof" descriptors in this message type. Every element in
+ with an index less than this will have a property value
+ of false; every element with an index greater than or equal to this will have a
+ property value of true.
+
+
+
+
+ Finds a field by field name.
+
+ The unqualified name of the field (e.g. "foo").
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a field by field number.
+
+ The field number within this message type.
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a nested descriptor by name. The is valid for fields, nested
+ message types, oneofs and enums.
+
+ The unqualified name of the descriptor, e.g. "Foo"
+ The descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this message.
+
+
+
+
+ The MessageOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value message option for this descriptor
+
+
+
+
+ Gets a repeated value message option for this descriptor
+
+
+
+
+ Looks up and cross-links all fields and nested types.
+
+
+
+
+ A collection to simplify retrieving the field accessor for a particular field.
+
+
+
+
+ Returns the fields in the message as an immutable list, in the order in which they
+ are declared in the source .proto file.
+
+
+
+
+ Returns the fields in the message as an immutable list, in ascending field number
+ order. Field numbers need not be contiguous, so there is no direct mapping from the
+ index in the list to the field number; to retrieve a field by field number, it is better
+ to use the indexer.
+
+
+
+
+ Returns a read-only dictionary mapping the field names in this message as they're available
+ in the JSON representation to the field descriptors. For example, a field foo_bar
+ in the message would result two entries, one with a key fooBar and one with a key
+ foo_bar, both referring to the same field.
+
+
+
+
+ Retrieves the descriptor for the field with the given number.
+
+ Number of the field to retrieve the descriptor for
+ The accessor for the given field
+ The message descriptor does not contain a field
+ with the given number
+
+
+
+ Retrieves the descriptor for the field with the given name.
+
+ Name of the field to retrieve the descriptor for
+ The descriptor for the given field
+ The message descriptor does not contain a field
+ with the given name
+
+
+
+ Describes a single method in a service.
+
+
+
+
+ The service this method belongs to.
+
+
+
+
+ The method's input type.
+
+
+
+
+ The method's input type.
+
+
+
+
+ Indicates if client streams multiple requests.
+
+
+
+
+ Indicates if server streams multiple responses.
+
+
+
+
+ The (possibly empty) set of custom options for this method.
+
+
+
+
+ The MethodOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value method option for this descriptor
+
+
+
+
+ Gets a repeated value method option for this descriptor
+
+
+
+
+ Returns a clone of the underlying describing this method.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this method descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Reflection access for a oneof, allowing clear and "get case" actions.
+
+
+
+
+ Gets the descriptor for this oneof.
+
+
+ The descriptor of the oneof.
+
+
+
+
+ Clears the oneof in the specified message.
+
+
+
+
+ Indicates which field in the oneof is set for specified message
+
+
+
+
+ Describes a "oneof" field collection in a message type: a set of
+ fields of which at most one can be set in any particular message.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this oneof.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this oneof descriptor.
+
+
+
+ Gets the message type containing this oneof.
+
+
+ The message type containing this oneof.
+
+
+
+
+ Gets the fields within this oneof, in declaration order.
+
+
+ The fields within this oneof, in declaration order.
+
+
+
+
+ Returns true if this oneof is a synthetic oneof containing a proto3 optional field;
+ false otherwise.
+
+
+
+
+ Gets an accessor for reflective access to the values associated with the oneof
+ in a particular message.
+
+
+
+ In descriptors for generated code, the value returned by this property will always be non-null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+ The accessor used for reflective access.
+
+
+
+
+ The (possibly empty) set of custom options for this oneof.
+
+
+
+
+ The OneofOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value oneof option for this descriptor
+
+
+
+
+ Gets a repeated value oneof option for this descriptor
+
+
+
+
+ Specifies the original name (in the .proto file) of a named element,
+ such as an enum value.
+
+
+
+
+ The name of the element in the .proto file.
+
+
+
+
+ If the name is preferred in the .proto file.
+
+
+
+
+ Constructs a new attribute instance for the given name.
+
+ The name of the element in the .proto file.
+
+
+
+ Represents a package in the symbol table. We use PackageDescriptors
+ just as placeholders so that someone cannot define, say, a message type
+ that has the same name as an existing package.
+
+
+
+
+ The methods in this class are somewhat evil, and should not be tampered with lightly.
+ Basically they allow the creation of relatively weakly typed delegates from MethodInfos
+ which are more strongly typed. They do this by creating an appropriate strongly typed
+ delegate from the MethodInfo, and then calling that within an anonymous method.
+ Mind-bending stuff (at least to your humble narrator) but the resulting delegates are
+ very fast compared with calling Invoke later on.
+
+
+
+
+ Empty Type[] used when calling GetProperty to force property instead of indexer fetching.
+
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to object.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to the specified type. The method is expected
+ to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that
+ means we need some extra work to perform conversions.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ type that declares the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+
+
+
+ Creates a reflection helper for the given type arguments. Currently these are created on demand
+ rather than cached; this will be "busy" when initially loading a message's descriptor, but after that
+ they can be garbage collected. We could cache them by type if that proves to be important, but creating
+ an object is pretty cheap.
+
+
+
+
+ Accessor for repeated fields.
+
+
+
+
+ Describes a service type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this service.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this service descriptor.
+
+
+
+ An unmodifiable list of methods in this service.
+
+
+
+
+ Finds a method by name.
+
+ The unqualified name of the method (e.g. "Foo").
+ The method's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this service.
+
+
+
+
+ The ServiceOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value service option for this descriptor
+
+
+
+
+ Gets a repeated value service option for this descriptor
+
+
+
+
+ Accessor for single fields.
+
+
+
+
+ An immutable registry of types which can be looked up by their full name.
+
+
+
+
+ An empty type registry, containing no types.
+
+
+
+
+ Attempts to find a message descriptor by its full name.
+
+ The full name of the message, which is the dot-separated
+ combination of package, containing messages and message name
+ The message descriptor corresponding to or null
+ if there is no such message descriptor.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ All message types within all the specified files are added to the registry, and
+ the dependencies of the specified files are also added, recursively.
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ The specified message descriptors are only used to identify their file descriptors; the returned registry
+ contains all the types within the file descriptors which contain the specified message descriptors (and
+ the dependencies of those files), not just the specified messages.
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls.
+
+
+
+
+ Abstraction for reading from a stream / read only sequence.
+ Parsing from the buffer is a loop of reading from current buffer / refreshing the buffer once done.
+
+
+
+
+ Initialize an instance with a coded input stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a read only sequence.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Represents a single field in an UnknownFieldSet.
+
+ An UnknownField consists of four lists of values. The lists correspond
+ to the four "wire types" used in the protocol buffer binary format.
+ Normally, only one of the four lists will contain any values, since it
+ is impossible to define a valid message type that declares two different
+ types for the same field number. However, the code is designed to allow
+ for the case where the same unknown field number is encountered using
+ multiple different wire types.
+
+
+
+
+
+ Creates a new UnknownField.
+
+
+
+
+ Checks if two unknown field are equal.
+
+
+
+
+ Get the hash code of the unknown field.
+
+
+
+
+ Serializes the field, including the field number, and writes it to
+
+
+ The unknown field number.
+ The write context to write to.
+
+
+
+ Computes the number of bytes required to encode this field, including field
+ number.
+
+
+
+
+ Merge the values in into this field. For each list
+ of values, 's values are append to the ones in this
+ field.
+
+
+
+
+ Returns a new list containing all of the given specified values from
+ both the and lists.
+ If is null and is null or empty,
+ null is returned. Otherwise, either a new list is created (if
+ is null) or the elements of are added to .
+
+
+
+
+ Adds a varint value.
+
+
+
+
+ Adds a fixed32 value.
+
+
+
+
+ Adds a fixed64 value.
+
+
+
+
+ Adds a length-delimited value.
+
+
+
+
+ Adds to the , creating
+ a new list if is null. The list is returned - either
+ the original reference or the new list.
+
+
+
+
+ Used to keep track of fields which were seen when parsing a protocol message
+ but whose field numbers or types are unrecognized. This most frequently
+ occurs when new fields are added to a message type and then messages containing
+ those fields are read by old software that was built before the new types were
+ added.
+
+ Most users will never need to use this class directly.
+
+
+
+
+ Creates a new UnknownFieldSet.
+
+
+
+
+ Checks whether or not the given field number is present in the set.
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Gets the number of bytes required to encode this set.
+
+
+
+
+ Checks if two unknown field sets are equal.
+
+
+
+
+ Gets the unknown field set's hash code.
+
+
+
+
+ Adds a field to the set. If a field with the same number already exists, it
+ is replaced.
+
+
+
+
+ Parse a single field from and merge it
+ into this set.
+
+ The parse context from which to read the field
+ false if the tag is an "end group" tag, true otherwise
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The coded input stream containing the field
+ The merged UnknownFieldSet
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The parse context from which to read the field
+ The merged UnknownFieldSet
+
+
+
+ Merges the fields from into this set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Created a new UnknownFieldSet to if
+ needed and merges the fields from into the first set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Adds a field to the unknown field set. If a field with the same
+ number already exists, the two are merged.
+
+
+
+
+ Clone an unknown field set from .
+
+
+
+
+ Provides a number of unsafe byte operations to be used by advanced applications with high performance
+ requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose
+ the backing buffer of a to the application.
+
+
+
+ The methods in this class should only be called if it is guaranteed that the buffer backing the
+ will never change! Mutation of a can lead to unexpected
+ and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution!
+
+
+ This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In
+ particular, if the bytes value changes out from under a Protocol Buffer:
+
+
+ -
+ serialization may throw
+
+ -
+ serialization may succeed but the wrong bytes may be written out
+
+ -
+ objects that are normally immutable (such as ByteString) are no longer immutable
+
+ -
+ hashCode may be incorrect
+
+
+
+
+
+
+ Constructs a new from the given bytes. The bytes are not copied,
+ and must not be modified while the is in use.
+ This API is experimental and subject to change.
+
+
+
+ Holder for reflection information generated from google/protobuf/any.proto
+
+
+ File descriptor for google/protobuf/any.proto
+
+
+
+ `Any` contains an arbitrary serialized protocol buffer message along with a
+ URL that describes the type of the serialized message.
+
+ Protobuf library provides support to pack/unpack Any values in the form
+ of utility functions or additional generated methods of the Any type.
+
+ Example 1: Pack and unpack a message in C++.
+
+ Foo foo = ...;
+ Any any;
+ any.PackFrom(foo);
+ ...
+ if (any.UnpackTo(&foo)) {
+ ...
+ }
+
+ Example 2: Pack and unpack a message in Java.
+
+ Foo foo = ...;
+ Any any = Any.pack(foo);
+ ...
+ if (any.is(Foo.class)) {
+ foo = any.unpack(Foo.class);
+ }
+
+ Example 3: Pack and unpack a message in Python.
+
+ foo = Foo(...)
+ any = Any()
+ any.Pack(foo)
+ ...
+ if any.Is(Foo.DESCRIPTOR):
+ any.Unpack(foo)
+ ...
+
+ Example 4: Pack and unpack a message in Go
+
+ foo := &pb.Foo{...}
+ any, err := anypb.New(foo)
+ if err != nil {
+ ...
+ }
+ ...
+ foo := &pb.Foo{}
+ if err := any.UnmarshalTo(foo); err != nil {
+ ...
+ }
+
+ The pack methods provided by protobuf library will by default use
+ 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ methods only use the fully qualified type name after the last '/'
+ in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ name "y.z".
+
+ JSON
+
+ The JSON representation of an `Any` value uses the regular
+ representation of the deserialized, embedded message, with an
+ additional field `@type` which contains the type URL. Example:
+
+ package google.profile;
+ message Person {
+ string first_name = 1;
+ string last_name = 2;
+ }
+
+ {
+ "@type": "type.googleapis.com/google.profile.Person",
+ "firstName": <string>,
+ "lastName": <string>
+ }
+
+ If the embedded message type is well-known and has a custom JSON
+ representation, that representation will be embedded adding a field
+ `value` which holds the custom JSON in addition to the `@type`
+ field. Example (for message [google.protobuf.Duration][]):
+
+ {
+ "@type": "type.googleapis.com/google.protobuf.Duration",
+ "value": "1.212s"
+ }
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ A URL/resource name that uniquely identifies the type of the serialized
+ protocol buffer message. This string must contain at least
+ one "/" character. The last segment of the URL's path must represent
+ the fully qualified name of the type (as in
+ `path/google.protobuf.Duration`). The name should be in a canonical form
+ (e.g., leading "." is not accepted).
+
+ In practice, teams usually precompile into the binary all types that they
+ expect it to use in the context of Any. However, for URLs which use the
+ scheme `http`, `https`, or no scheme, one can optionally set up a type
+ server that maps type URLs to message definitions as follows:
+
+ * If no scheme is provided, `https` is assumed.
+ * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ value in binary format, or produce an error.
+ * Applications are allowed to cache lookup results based on the
+ URL, or have them precompiled into a binary to avoid any
+ lookup. Therefore, binary compatibility needs to be preserved
+ on changes to types. (Use versioned type names to manage
+ breaking changes.)
+
+ Note: this functionality is not currently available in the official
+ protobuf release, and it is not used for type URLs beginning with
+ type.googleapis.com.
+
+ Schemes other than `http`, `https` (or the empty scheme) might be
+ used with implementation specific semantics.
+
+
+
+ Field number for the "value" field.
+
+
+
+ Must be a valid serialized protocol buffer of the above specified type.
+
+
+
+
+ Retrieves the type name for a type URL, matching the
+ of the packed message type.
+
+
+
+ This is always just the last part of the URL, after the final slash. No validation of
+ anything before the trailing slash is performed. If the type URL does not include a slash,
+ an empty string is returned rather than an exception being thrown; this won't match any types,
+ and the calling code is probably in a better position to give a meaningful error.
+
+
+ There is no handling of fragments or queries at the moment.
+
+
+ The URL to extract the type name from
+ The type name
+
+
+
+ Returns a bool indictating whether this Any message is of the target message type
+
+ The descriptor of the message type
+ true if the type name matches the descriptor's full name or false otherwise
+
+
+
+ Unpacks the content of this Any message into the target message type,
+ which must match the type URL within this Any message.
+
+ The type of message to unpack the content into.
+ The unpacked message.
+ The target message type doesn't match the type URL in this message
+
+
+
+ Attempts to unpack the content of this Any message into the target message type,
+ if it matches the type URL within this Any message.
+
+ The type of message to attempt to unpack the content into.
+ true if the message was successfully unpacked; false if the type name didn't match
+
+
+
+ Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com".
+
+ The message to pack.
+ An Any message with the content and type URL of .
+
+
+
+ Packs the specified message into an Any message using the specified type URL prefix.
+
+ The message to pack.
+ The prefix for the type URL.
+ An Any message with the content and type URL of .
+
+
+ Holder for reflection information generated from google/protobuf/api.proto
+
+
+ File descriptor for google/protobuf/api.proto
+
+
+
+ Api is a light-weight descriptor for an API Interface.
+
+ Interfaces are also described as "protocol buffer services" in some contexts,
+ such as by the "service" keyword in a .proto file, but they are different
+ from API Services, which represent a concrete implementation of an interface
+ as opposed to simply a description of methods and bindings. They are also
+ sometimes simply referred to as "APIs" in other contexts, such as the name of
+ this message itself. See https://cloud.google.com/apis/design/glossary for
+ detailed terminology.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of this interface, including package name
+ followed by the interface's simple name.
+
+
+
+ Field number for the "methods" field.
+
+
+
+ The methods of this interface, in unspecified order.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the interface.
+
+
+
+ Field number for the "version" field.
+
+
+
+ A version string for this interface. If specified, must have the form
+ `major-version.minor-version`, as in `1.10`. If the minor version is
+ omitted, it defaults to zero. If the entire version field is empty, the
+ major version is derived from the package name, as outlined below. If the
+ field is not empty, the version in the package name will be verified to be
+ consistent with what is provided here.
+
+ The versioning schema uses [semantic
+ versioning](http://semver.org) where the major version number
+ indicates a breaking change and the minor version an additive,
+ non-breaking change. Both version numbers are signals to users
+ what to expect from different versions, and should be carefully
+ chosen based on the product plan.
+
+ The major version is also reflected in the package name of the
+ interface, which must end in `v<major-version>`, as in
+ `google.feature.v1`. For major versions 0 and 1, the suffix can
+ be omitted. Zero major versions must only be used for
+ experimental, non-GA interfaces.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ Source context for the protocol buffer service represented by this
+ message.
+
+
+
+ Field number for the "mixins" field.
+
+
+
+ Included interfaces. See [Mixin][].
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of the service.
+
+
+
+
+ Method represents a method of an API interface.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The simple name of this method.
+
+
+
+ Field number for the "request_type_url" field.
+
+
+
+ A URL of the input message type.
+
+
+
+ Field number for the "request_streaming" field.
+
+
+
+ If true, the request is streamed.
+
+
+
+ Field number for the "response_type_url" field.
+
+
+
+ The URL of the output message type.
+
+
+
+ Field number for the "response_streaming" field.
+
+
+
+ If true, the response is streamed.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the method.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of this method.
+
+
+
+
+ Declares an API Interface to be included in this interface. The including
+ interface must redeclare all the methods from the included interface, but
+ documentation and options are inherited as follows:
+
+ - If after comment and whitespace stripping, the documentation
+ string of the redeclared method is empty, it will be inherited
+ from the original method.
+
+ - Each annotation belonging to the service config (http,
+ visibility) which is not set in the redeclared method will be
+ inherited.
+
+ - If an http annotation is inherited, the path pattern will be
+ modified as follows. Any version prefix will be replaced by the
+ version of the including interface plus the [root][] path if
+ specified.
+
+ Example of a simple mixin:
+
+ package google.acl.v1;
+ service AccessControl {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v1/{resource=**}:getAcl";
+ }
+ }
+
+ package google.storage.v2;
+ service Storage {
+ rpc GetAcl(GetAclRequest) returns (Acl);
+
+ // Get a data record.
+ rpc GetData(GetDataRequest) returns (Data) {
+ option (google.api.http).get = "/v2/{resource=**}";
+ }
+ }
+
+ Example of a mixin configuration:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+
+ The mixin construct implies that all methods in `AccessControl` are
+ also declared with same name and request/response types in
+ `Storage`. A documentation generator or annotation processor will
+ see the effective `Storage.GetAcl` method after inheriting
+ documentation and annotations as follows:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+ Note how the version in the path pattern changed from `v1` to `v2`.
+
+ If the `root` field in the mixin is specified, it should be a
+ relative path under which inherited HTTP paths are placed. Example:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+ root: acls
+
+ This implies the following inherited HTTP annotation:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of the interface which is included.
+
+
+
+ Field number for the "root" field.
+
+
+
+ If non-empty specifies a path under which inherited HTTP paths
+ are rooted.
+
+
+
+ Holder for reflection information generated from google/protobuf/duration.proto
+
+
+ File descriptor for google/protobuf/duration.proto
+
+
+
+ A Duration represents a signed, fixed-length span of time represented
+ as a count of seconds and fractions of seconds at nanosecond
+ resolution. It is independent of any calendar and concepts like "day"
+ or "month". It is related to Timestamp in that the difference between
+ two Timestamp values is a Duration and it can be added or subtracted
+ from a Timestamp. Range is approximately +-10,000 years.
+
+ # Examples
+
+ Example 1: Compute Duration from two Timestamps in pseudo code.
+
+ Timestamp start = ...;
+ Timestamp end = ...;
+ Duration duration = ...;
+
+ duration.seconds = end.seconds - start.seconds;
+ duration.nanos = end.nanos - start.nanos;
+
+ if (duration.seconds < 0 && duration.nanos > 0) {
+ duration.seconds += 1;
+ duration.nanos -= 1000000000;
+ } else if (duration.seconds > 0 && duration.nanos < 0) {
+ duration.seconds -= 1;
+ duration.nanos += 1000000000;
+ }
+
+ Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+
+ Timestamp start = ...;
+ Duration duration = ...;
+ Timestamp end = ...;
+
+ end.seconds = start.seconds + duration.seconds;
+ end.nanos = start.nanos + duration.nanos;
+
+ if (end.nanos < 0) {
+ end.seconds -= 1;
+ end.nanos += 1000000000;
+ } else if (end.nanos >= 1000000000) {
+ end.seconds += 1;
+ end.nanos -= 1000000000;
+ }
+
+ Example 3: Compute Duration from datetime.timedelta in Python.
+
+ td = datetime.timedelta(days=3, minutes=10)
+ duration = Duration()
+ duration.FromTimedelta(td)
+
+ # JSON Mapping
+
+ In JSON format, the Duration type is encoded as a string rather than an
+ object, where the string ends in the suffix "s" (indicating seconds) and
+ is preceded by the number of seconds, with nanoseconds expressed as
+ fractional seconds. For example, 3 seconds with 0 nanoseconds should be
+ encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
+ be expressed in JSON format as "3.000000001s", and 3 seconds and 1
+ microsecond should be expressed in JSON format as "3.000001s".
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Signed seconds of the span of time. Must be from -315,576,000,000
+ to +315,576,000,000 inclusive. Note: these bounds are computed from:
+ 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Signed fractions of a second at nanosecond resolution of the span
+ of time. Durations less than one second are represented with a 0
+ `seconds` field and a positive or negative `nanos` field. For durations
+ of one second or more, a non-zero value for the `nanos` field must be
+ of the same sign as the `seconds` field. Must be from -999,999,999
+ to +999,999,999 inclusive.
+
+
+
+
+ The number of nanoseconds in a second.
+
+
+
+
+ The number of nanoseconds in a BCL tick (as used by and ).
+
+
+
+
+ The maximum permitted number of seconds.
+
+
+
+
+ The minimum permitted number of seconds.
+
+
+
+
+ Converts this to a .
+
+ If the duration is not a precise number of ticks, it is truncated towards 0.
+ The value of this duration, as a TimeSpan.
+ This value isn't a valid normalized duration, as
+ described in the documentation.
+
+
+
+ Converts the given to a .
+
+ The TimeSpan to convert.
+ The value of the given TimeSpan, as a Duration.
+
+
+
+ Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes.
+
+ The duration to negate. Must not be null.
+ The negated value of this duration.
+
+
+
+ Adds the two specified values together.
+
+ The first value to add. Must not be null.
+ The second value to add. Must not be null.
+
+
+
+
+ Subtracts one from another.
+
+ The duration to subtract from. Must not be null.
+ The duration to subtract. Must not be null.
+ The difference between the two specified durations.
+
+
+
+ Creates a duration with the normalized values from the given number of seconds and
+ nanoseconds, conforming with the description in the proto file.
+
+
+
+
+ Converts a duration specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in duration.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which
+ case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well
+ as Duration.
+
+
+
+ Holder for reflection information generated from google/protobuf/empty.proto
+
+
+ File descriptor for google/protobuf/empty.proto
+
+
+
+ A generic empty message that you can re-use to avoid defining duplicated
+ empty messages in your APIs. A typical example is to use it as the request
+ or the response type of an API method. For instance:
+
+ service Foo {
+ rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+ }
+
+
+
+ Holder for reflection information generated from google/protobuf/field_mask.proto
+
+
+ File descriptor for google/protobuf/field_mask.proto
+
+
+
+ `FieldMask` represents a set of symbolic field paths, for example:
+
+ paths: "f.a"
+ paths: "f.b.d"
+
+ Here `f` represents a field in some root message, `a` and `b`
+ fields in the message found in `f`, and `d` a field found in the
+ message in `f.b`.
+
+ Field masks are used to specify a subset of fields that should be
+ returned by a get operation or modified by an update operation.
+ Field masks also have a custom JSON encoding (see below).
+
+ # Field Masks in Projections
+
+ When used in the context of a projection, a response message or
+ sub-message is filtered by the API to only contain those fields as
+ specified in the mask. For example, if the mask in the previous
+ example is applied to a response message as follows:
+
+ f {
+ a : 22
+ b {
+ d : 1
+ x : 2
+ }
+ y : 13
+ }
+ z: 8
+
+ The result will not contain specific values for fields x,y and z
+ (their value will be set to the default, and omitted in proto text
+ output):
+
+ f {
+ a : 22
+ b {
+ d : 1
+ }
+ }
+
+ A repeated field is not allowed except at the last position of a
+ paths string.
+
+ If a FieldMask object is not present in a get operation, the
+ operation applies to all fields (as if a FieldMask of all fields
+ had been specified).
+
+ Note that a field mask does not necessarily apply to the
+ top-level response message. In case of a REST get operation, the
+ field mask applies directly to the response, but in case of a REST
+ list operation, the mask instead applies to each individual message
+ in the returned resource list. In case of a REST custom method,
+ other definitions may be used. Where the mask applies will be
+ clearly documented together with its declaration in the API. In
+ any case, the effect on the returned resource/resources is required
+ behavior for APIs.
+
+ # Field Masks in Update Operations
+
+ A field mask in update operations specifies which fields of the
+ targeted resource are going to be updated. The API is required
+ to only change the values of the fields as specified in the mask
+ and leave the others untouched. If a resource is passed in to
+ describe the updated values, the API ignores the values of all
+ fields not covered by the mask.
+
+ If a repeated field is specified for an update operation, new values will
+ be appended to the existing repeated field in the target resource. Note that
+ a repeated field is only allowed in the last position of a `paths` string.
+
+ If a sub-message is specified in the last position of the field mask for an
+ update operation, then new value will be merged into the existing sub-message
+ in the target resource.
+
+ For example, given the target message:
+
+ f {
+ b {
+ d: 1
+ x: 2
+ }
+ c: [1]
+ }
+
+ And an update message:
+
+ f {
+ b {
+ d: 10
+ }
+ c: [2]
+ }
+
+ then if the field mask is:
+
+ paths: ["f.b", "f.c"]
+
+ then the result will be:
+
+ f {
+ b {
+ d: 10
+ x: 2
+ }
+ c: [1, 2]
+ }
+
+ An implementation may provide options to override this default behavior for
+ repeated and message fields.
+
+ In order to reset a field's value to the default, the field must
+ be in the mask and set to the default value in the provided resource.
+ Hence, in order to reset all fields of a resource, provide a default
+ instance of the resource and set all fields in the mask, or do
+ not provide a mask as described below.
+
+ If a field mask is not present on update, the operation applies to
+ all fields (as if a field mask of all fields has been specified).
+ Note that in the presence of schema evolution, this may mean that
+ fields the client does not know and has therefore not filled into
+ the request will be reset to their default. If this is unwanted
+ behavior, a specific service may require a client to always specify
+ a field mask, producing an error if not.
+
+ As with get operations, the location of the resource which
+ describes the updated values in the request message depends on the
+ operation kind. In any case, the effect of the field mask is
+ required to be honored by the API.
+
+ ## Considerations for HTTP REST
+
+ The HTTP kind of an update operation which uses a field mask must
+ be set to PATCH instead of PUT in order to satisfy HTTP semantics
+ (PUT must only be used for full updates).
+
+ # JSON Encoding of Field Masks
+
+ In JSON, a field mask is encoded as a single string where paths are
+ separated by a comma. Fields name in each path are converted
+ to/from lower-camel naming conventions.
+
+ As an example, consider the following message declarations:
+
+ message Profile {
+ User user = 1;
+ Photo photo = 2;
+ }
+ message User {
+ string display_name = 1;
+ string address = 2;
+ }
+
+ In proto a field mask for `Profile` may look as such:
+
+ mask {
+ paths: "user.display_name"
+ paths: "photo"
+ }
+
+ In JSON, the same mask is represented as below:
+
+ {
+ mask: "user.displayName,photo"
+ }
+
+ # Field Masks and Oneof Fields
+
+ Field masks treat fields in oneofs just as regular fields. Consider the
+ following message:
+
+ message SampleMessage {
+ oneof test_oneof {
+ string name = 4;
+ SubMessage sub_message = 9;
+ }
+ }
+
+ The field mask can be:
+
+ mask {
+ paths: "name"
+ }
+
+ Or:
+
+ mask {
+ paths: "sub_message"
+ }
+
+ Note that oneof type names ("test_oneof" in this case) cannot be used in
+ paths.
+
+ ## Field Mask Verification
+
+ The implementation of any API method which has a FieldMask type field in the
+ request should verify the included field paths, and return an
+ `INVALID_ARGUMENT` error if any path is unmappable.
+
+
+
+ Field number for the "paths" field.
+
+
+
+ The set of field mask paths.
+
+
+
+
+ Converts a field mask specified by paths to a string.
+
+
+ If the value is a normalized duration in the range described in field_mask.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Paths in the field mask
+ Determines the handling of non-normalized values
+ The represented field mask is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Parses from a string to a FieldMask.
+
+
+
+
+ Parses from a string to a FieldMask and validates all field paths.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask for a list of field paths in a certain type.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether the given path is valid for a field mask.
+
+ true if the path is valid; false otherwise
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Checks whether a given field path is valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Converts this FieldMask to its canonical form. In the canonical form of a
+ FieldMask, all field paths are sorted alphabetically and redundant field
+ paths are removed.
+
+
+
+
+ Creates a union of two or more FieldMasks.
+
+
+
+
+ Calculates the intersection of two FieldMasks.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another with the
+ specified merge options.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another.
+
+
+
+
+ Options to customize merging behavior.
+
+
+
+
+ Whether to replace message fields(i.e., discard existing content in
+ destination message fields) when merging.
+ Default behavior is to merge the source message field into the
+ destination message field.
+
+
+
+
+ Whether to replace repeated fields (i.e., discard existing content in
+ destination repeated fields) when merging.
+ Default behavior is to append elements from source repeated field to the
+ destination repeated field.
+
+
+
+
+ Whether to replace primitive (non-repeated and non-message) fields in
+ destination message fields with the source primitive fields (i.e., if the
+ field is set in the source, the value is copied to the
+ destination; if the field is unset in the source, the field is cleared
+ from the destination) when merging.
+
+ Default behavior is to always set the value of the source primitive
+ field to the destination primitive field, and if the source field is
+ unset, the default value of the source field is copied to the
+ destination.
+
+
+
+ Holder for reflection information generated from google/protobuf/source_context.proto
+
+
+ File descriptor for google/protobuf/source_context.proto
+
+
+
+ `SourceContext` represents information about the source of a
+ protobuf element, like the file in which it is defined.
+
+
+
+ Field number for the "file_name" field.
+
+
+
+ The path-qualified name of the .proto file that contained the associated
+ protobuf element. For example: `"google/protobuf/source_context.proto"`.
+
+
+
+ Holder for reflection information generated from google/protobuf/struct.proto
+
+
+ File descriptor for google/protobuf/struct.proto
+
+
+
+ `NullValue` is a singleton enumeration to represent the null value for the
+ `Value` type union.
+
+ The JSON representation for `NullValue` is JSON `null`.
+
+
+
+
+ Null value.
+
+
+
+
+ `Struct` represents a structured data value, consisting of fields
+ which map to dynamically typed values. In some languages, `Struct`
+ might be supported by a native representation. For example, in
+ scripting languages like JS a struct is represented as an
+ object. The details of that representation are described together
+ with the proto support for the language.
+
+ The JSON representation for `Struct` is JSON object.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ Unordered map of dynamically typed values.
+
+
+
+
+ `Value` represents a dynamically typed value which can be either
+ null, a number, a string, a boolean, a recursive struct value, or a
+ list of values. A producer of value is expected to set one of these
+ variants. Absence of any variant indicates an error.
+
+ The JSON representation for `Value` is JSON value.
+
+
+
+ Field number for the "null_value" field.
+
+
+
+ Represents a null value.
+
+
+
+ Field number for the "number_value" field.
+
+
+
+ Represents a double value.
+
+
+
+ Field number for the "string_value" field.
+
+
+
+ Represents a string value.
+
+
+
+ Field number for the "bool_value" field.
+
+
+
+ Represents a boolean value.
+
+
+
+ Field number for the "struct_value" field.
+
+
+
+ Represents a structured value.
+
+
+
+ Field number for the "list_value" field.
+
+
+
+ Represents a repeated `Value`.
+
+
+
+ Enum of possible cases for the "kind" oneof.
+
+
+
+ Convenience method to create a Value message with a string value.
+
+ Value to set for the StringValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a number value.
+
+ Value to set for the NumberValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a Boolean value.
+
+ Value to set for the BoolValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a null initial value.
+
+ A newly-created Value message a null initial value.
+
+
+
+ Convenience method to create a Value message with an initial list of values.
+
+ The values provided are not cloned; the references are copied directly.
+ A newly-created Value message an initial list value.
+
+
+
+ Convenience method to create a Value message with an initial struct value
+
+ The value provided is not cloned; the reference is copied directly.
+ A newly-created Value message an initial struct value.
+
+
+
+ `ListValue` is a wrapper around a repeated field of values.
+
+ The JSON representation for `ListValue` is JSON array.
+
+
+
+ Field number for the "values" field.
+
+
+
+ Repeated field of dynamically typed values.
+
+
+
+
+ Extension methods on BCL time-related types, converting to protobuf types.
+
+
+
+
+ Converts the given to a .
+
+ The date and time to convert to a timestamp.
+ The value has a other than Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts the given to a .
+
+ The time span to convert.
+ The converted duration.
+
+
+ Holder for reflection information generated from google/protobuf/timestamp.proto
+
+
+ File descriptor for google/protobuf/timestamp.proto
+
+
+
+ A Timestamp represents a point in time independent of any time zone or local
+ calendar, encoded as a count of seconds and fractions of seconds at
+ nanosecond resolution. The count is relative to an epoch at UTC midnight on
+ January 1, 1970, in the proleptic Gregorian calendar which extends the
+ Gregorian calendar backwards to year one.
+
+ All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+ second table is needed for interpretation, using a [24-hour linear
+ smear](https://developers.google.com/time/smear).
+
+ The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+ restricting to that range, we ensure that we can convert to and from [RFC
+ 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+
+ # Examples
+
+ Example 1: Compute Timestamp from POSIX `time()`.
+
+ Timestamp timestamp;
+ timestamp.set_seconds(time(NULL));
+ timestamp.set_nanos(0);
+
+ Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+
+ Timestamp timestamp;
+ timestamp.set_seconds(tv.tv_sec);
+ timestamp.set_nanos(tv.tv_usec * 1000);
+
+ Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+
+ // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ Timestamp timestamp;
+ timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+
+ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+
+ long millis = System.currentTimeMillis();
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ .setNanos((int) ((millis % 1000) * 1000000)).build();
+
+ Example 5: Compute Timestamp from Java `Instant.now()`.
+
+ Instant now = Instant.now();
+
+ Timestamp timestamp =
+ Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+ .setNanos(now.getNano()).build();
+
+ Example 6: Compute Timestamp from current time in Python.
+
+ timestamp = Timestamp()
+ timestamp.GetCurrentTime()
+
+ # JSON Mapping
+
+ In JSON format, the Timestamp type is encoded as a string in the
+ [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+ format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+ where {year} is always expressed using four digits while {month}, {day},
+ {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+ seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+ are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+ is required. A proto3 JSON serializer should always use UTC (as indicated by
+ "Z") when printing the Timestamp type and a proto3 JSON parser should be
+ able to accept both UTC and other timezones (as indicated by an offset).
+
+ For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+ 01:30 UTC on January 15, 2017.
+
+ In JavaScript, one can convert a Date object to this format using the
+ standard
+ [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ method. In Python, a standard `datetime.datetime` object can be converted
+ to this format using
+ [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
+ ) to obtain a formatter capable of generating timestamps in this format.
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Represents seconds of UTC time since Unix epoch
+ 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+ 9999-12-31T23:59:59Z inclusive.
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Non-negative fractions of a second at nanosecond resolution. Negative
+ second values with fractions must still have non-negative nanos values
+ that count forward in time. Must be from 0 to 999,999,999
+ inclusive.
+
+
+
+
+ Returns the difference between one and another, as a .
+
+ The timestamp to subtract from. Must not be null.
+ The timestamp to subtract. Must not be null.
+ The difference between the two specified timestamps.
+
+
+
+ Adds a to a , to obtain another Timestamp.
+
+ The timestamp to add the duration to. Must not be null.
+ The duration to add. Must not be null.
+ The result of adding the duration to the timestamp.
+
+
+
+ Subtracts a from a , to obtain another Timestamp.
+
+ The timestamp to subtract the duration from. Must not be null.
+ The duration to subtract.
+ The result of subtracting the duration from the timestamp.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTime will always have a Kind of Utc.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTime.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTimeOffset will always have an Offset of zero.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTimeOffset.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts the specified to a .
+
+
+ The Kind of is not DateTimeKind.Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts a timestamp specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in timestamp.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+ Timestamp to compare
+ an integer indicating whether this timestamp precedes or follows the other
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Returns whether two timestamps are equivalent
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps refer to the same nanosecond
+
+
+
+ Returns whether two timestamps differ
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps differ
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+ Holder for reflection information generated from google/protobuf/type.proto
+
+
+ File descriptor for google/protobuf/type.proto
+
+
+
+ The syntax in which a protocol buffer element is defined.
+
+
+
+
+ Syntax `proto2`.
+
+
+
+
+ Syntax `proto3`.
+
+
+
+
+ A protocol buffer message type.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified message name.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ The list of fields.
+
+
+
+ Field number for the "oneofs" field.
+
+
+
+ The list of types appearing in `oneof` definitions in this type.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ A single field of a message type.
+
+
+
+ Field number for the "kind" field.
+
+
+
+ The field type.
+
+
+
+ Field number for the "cardinality" field.
+
+
+
+ The field cardinality.
+
+
+
+ Field number for the "number" field.
+
+
+
+ The field number.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The field name.
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ The field type URL, without the scheme, for message or enumeration
+ types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ The index of the field type in `Type.oneofs`, for message or enumeration
+ types. The first type has index 1; zero means the type is not in the list.
+
+
+
+ Field number for the "packed" field.
+
+
+
+ Whether to use alternative packed wire representation.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "json_name" field.
+
+
+
+ The field JSON name.
+
+
+
+ Field number for the "default_value" field.
+
+
+
+ The string value of the default value of this field. Proto2 syntax only.
+
+
+
+ Container for nested types declared in the Field message type.
+
+
+
+ Basic field types.
+
+
+
+
+ Field type unknown.
+
+
+
+
+ Field type double.
+
+
+
+
+ Field type float.
+
+
+
+
+ Field type int64.
+
+
+
+
+ Field type uint64.
+
+
+
+
+ Field type int32.
+
+
+
+
+ Field type fixed64.
+
+
+
+
+ Field type fixed32.
+
+
+
+
+ Field type bool.
+
+
+
+
+ Field type string.
+
+
+
+
+ Field type group. Proto2 syntax only, and deprecated.
+
+
+
+
+ Field type message.
+
+
+
+
+ Field type bytes.
+
+
+
+
+ Field type uint32.
+
+
+
+
+ Field type enum.
+
+
+
+
+ Field type sfixed32.
+
+
+
+
+ Field type sfixed64.
+
+
+
+
+ Field type sint32.
+
+
+
+
+ Field type sint64.
+
+
+
+
+ Whether a field is optional, required, or repeated.
+
+
+
+
+ For fields with unknown cardinality.
+
+
+
+
+ For optional fields.
+
+
+
+
+ For required fields. Proto2 syntax only.
+
+
+
+
+ For repeated fields.
+
+
+
+
+ Enum type definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum type name.
+
+
+
+ Field number for the "enumvalue" field.
+
+
+
+ Enum value definitions.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ Enum value definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum value name.
+
+
+
+ Field number for the "number" field.
+
+
+
+ Enum value number.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+
+ A protocol buffer option, which can be attached to a message, field,
+ enumeration, etc.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The option's name. For protobuf built-in options (options defined in
+ descriptor.proto), this is the short name. For example, `"map_entry"`.
+ For custom options, it should be the fully-qualified name. For example,
+ `"google.api.http"`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The option's value packed in an Any message. If the value is a primitive,
+ the corresponding wrapper type defined in google/protobuf/wrappers.proto
+ should be used. If the value is an enum, it should be stored as an int32
+ value using the google.protobuf.Int32Value type.
+
+
+
+ Holder for reflection information generated from google/protobuf/wrappers.proto
+
+
+ File descriptor for google/protobuf/wrappers.proto
+
+
+
+ Field number for the single "value" field in all wrapper types.
+
+
+
+
+ Wrapper message for `double`.
+
+ The JSON representation for `DoubleValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The double value.
+
+
+
+
+ Wrapper message for `float`.
+
+ The JSON representation for `FloatValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The float value.
+
+
+
+
+ Wrapper message for `int64`.
+
+ The JSON representation for `Int64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int64 value.
+
+
+
+
+ Wrapper message for `uint64`.
+
+ The JSON representation for `UInt64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint64 value.
+
+
+
+
+ Wrapper message for `int32`.
+
+ The JSON representation for `Int32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int32 value.
+
+
+
+
+ Wrapper message for `uint32`.
+
+ The JSON representation for `UInt32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint32 value.
+
+
+
+
+ Wrapper message for `bool`.
+
+ The JSON representation for `BoolValue` is JSON `true` and `false`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bool value.
+
+
+
+
+ Wrapper message for `string`.
+
+ The JSON representation for `StringValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The string value.
+
+
+
+
+ Wrapper message for `bytes`.
+
+ The JSON representation for `BytesValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bytes value.
+
+
+
+
+ This class is used internally by the Protocol Buffer Library and generated
+ message implementations. It is public only for the sake of those generated
+ messages. Others should not use this class directly.
+
+ This class contains constants and helper functions useful for dealing with
+ the Protocol Buffer wire format.
+
+
+
+
+
+ Wire types within protobuf encoding.
+
+
+
+
+ Variable-length integer.
+
+
+
+
+ A fixed-length 64-bit value.
+
+
+
+
+ A length-delimited value, i.e. a length followed by that many bytes of data.
+
+
+
+
+ A "start group" value
+
+
+
+
+ An "end group" value
+
+
+
+
+ A fixed-length 32-bit value.
+
+
+
+
+ Given a tag value, determines the wire type (lower 3 bits).
+
+
+
+
+ Given a tag value, determines the field number (the upper 29 bits).
+
+
+
+
+ Makes a tag value given a field number and wire type.
+
+
+
+
+ Abstraction for writing to a steam / IBufferWriter
+
+
+
+
+ Initialize an instance with a coded output stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer writer.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer represented by a single span (i.e. buffer cannot be refreshed)
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Verifies that SpaceLeft returns zero.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ An opaque struct that represents the current serialization state and is passed along
+ as the serialization proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Creates a WriteContext instance from CodedOutputStream.
+ WARNING: internally this copies the CodedOutputStream's state, so after done with the WriteContext,
+ the CodedOutputStream's state needs to be updated.
+
+
+
+
+ Writes a double field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Primitives for encoding protobuf wire format.
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Given a QWORD which represents a buffer of 4 ASCII chars in machine-endian order,
+ narrows each WORD to a BYTE, then writes the 4-byte result to the output buffer
+ also in machine-endian order.
+
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Encodes and writes a tag.
+
+
+
+
+ Writes an already-encoded tag.
+
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+
+
+
+ Encode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Encode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Writing messages / groups.
+
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+
+
+
+ Writes a group, without a tag.
+
+
+
+
+ Writes a message, without a tag.
+ Message will be written without a length prefix.
+
+
+
+
diff --git a/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.dll b/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.dll
new file mode 100644
index 0000000..6504632
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.dll differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.pdb b/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.pdb
new file mode 100644
index 0000000..f5b791e
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.pdb differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.xml b/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.xml
new file mode 100644
index 0000000..fbff505
--- /dev/null
+++ b/packages/Google.Protobuf.3.21.9/lib/netstandard1.1/Google.Protobuf.xml
@@ -0,0 +1,10465 @@
+
+
+
+ Google.Protobuf
+
+
+
+
+ Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy
+
+
+
+
+ The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy
+
+
+
+
+ Determines which copy routine to use based on the number of bytes to be copied.
+
+
+
+
+ Reverses the order of bytes in the array
+
+
+
+
+ Immutable array of bytes.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+ This method encapsulates converting array to memory. Reduces need for SecuritySafeCritical
+ in .NET Framework.
+
+
+
+
+ Constructs a new ByteString from the given memory. The memory is
+ *not* copied, and must not be modified after this constructor is called.
+
+
+
+
+ Returns an empty ByteString.
+
+
+
+
+ Returns the length of this ByteString in bytes.
+
+
+
+
+ Returns true if this byte string is empty, false otherwise.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Converts this into a byte array.
+
+ The data is copied - changes to the returned array will not be reflected in this ByteString.
+ A byte array with the same data as this ByteString.
+
+
+
+ Converts this into a standard base64 representation.
+
+ A base64 representation of this ByteString.
+
+
+
+ Constructs a from the Base64 Encoded String.
+
+
+
+
+ Constructs a from data in the given stream, synchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from data in the given stream, asynchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ The cancellation token to use when reading from the stream, if any.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from the given array. The contents
+ are copied, so further modifications to the array will not
+ be reflected in the returned ByteString.
+ This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form
+ which is primarily useful for testing.
+
+
+
+
+ Constructs a from a portion of a byte array.
+
+
+
+
+ Constructs a from a read only span. The contents
+ are copied, so further modifications to the span will not
+ be reflected in the returned .
+
+
+
+
+ Creates a new by encoding the specified text with
+ the given encoding.
+
+
+
+
+ Creates a new by encoding the specified text in UTF-8.
+
+
+
+
+ Returns the byte at the given index.
+
+
+
+
+ Converts this into a string by applying the given encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with the given encoding.
+
+ The encoding to use to decode the binary data into text.
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Converts this into a string by applying the UTF-8 encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with UTF-8.
+
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Creates a CodedInputStream from this ByteString's data.
+
+
+
+
+ Compares two byte strings for equality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ true if the byte strings are equal; false otherwise.
+
+
+
+ Compares two byte strings for inequality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ false if the byte strings are equal; true otherwise.
+
+
+
+ Compares this byte string with another object.
+
+ The object to compare this with.
+ true if refers to an equal ; false otherwise.
+
+
+
+ Returns a hash code for this object. Two equal byte strings
+ will return the same hash code.
+
+ A hash code for this object.
+
+
+
+ Compares this byte string with another.
+
+ The to compare this with.
+ true if refers to an equal byte string; false otherwise.
+
+
+
+ Copies the entire byte array to the destination array provided at the offset specified.
+
+
+
+
+ Writes the entire byte array to the provided stream
+
+
+
+
+ SecuritySafeCritical attribute can not be placed on types with async methods.
+ This class has ByteString's async methods so it can be marked with SecuritySafeCritical.
+
+
+
+
+ Reads and decodes protocol message fields.
+
+
+
+ This class is generally used by generated code to read appropriate
+ primitives from the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format.
+
+
+ Repeated fields and map fields are not handled by this class; use
+ and to serialize such fields.
+
+
+
+
+
+ Whether to leave the underlying stream open when disposing of this stream.
+ This is always true when there's no stream.
+
+
+
+
+ Buffer of data read from the stream or provided at construction time.
+
+
+
+
+ The stream to read further input from, or null if the byte array buffer was provided
+ directly on construction, with no further data available.
+
+
+
+
+ The parser state is kept separately so that other parse implementations can reuse the same
+ parsing primitives.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given byte array.
+
+
+
+
+ Creates a new that reads from the given byte array slice.
+
+
+
+
+ Creates a new reading data from the given stream, which will be disposed
+ when the returned object is disposed.
+
+ The stream to read from.
+
+
+
+ Creates a new reading data from the given stream.
+
+ The stream to read from.
+ true to leave open when the returned
+ is disposed; false to dispose of the given stream when the
+ returned object is disposed.
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the default limits.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the specified limits.
+
+
+ This chains to the version with the default limits instead of vice versa to avoid
+ having to check that the default values are valid every time.
+
+
+
+
+ Creates a with the specified size and recursion limits, reading
+ from an input stream.
+
+
+ This method exists separately from the constructor to reduce the number of constructor overloads.
+ It is likely to be used considerably less frequently than the constructors, as the default limits
+ are suitable for most use cases.
+
+ The input stream to read from
+ The total limit of data to read from the stream.
+ The maximum recursion depth to allow while reading.
+ A CodedInputStream reading from with the specified size
+ and recursion limits.
+
+
+
+ Returns the current position in the input stream, or the position in the input buffer
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the stream.
+
+
+
+
+ Returns the size limit for this stream.
+
+
+ This limit is applied when reading from the underlying stream, as a sanity check. It is
+ not applied when reading from a byte array data source without an underlying stream.
+ The default value is Int32.MaxValue.
+
+
+ The size limit.
+
+
+
+
+ Returns the recursion limit for this stream. This limit is applied whilst reading messages,
+ to avoid maliciously-recursive data.
+
+
+ The default limit is 100.
+
+
+ The recursion limit for this stream.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Disposes of this instance, potentially closing any underlying stream.
+
+
+ As there is no flushing to perform here, disposing of a which
+ was constructed with the leaveOpen option parameter set to true (or one which
+ was constructed to read from a byte array) has no effect.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of stream".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputStream; it may be the end of the logical stream
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of stream. (0 is never a valid tag.)
+
+
+
+ Skips the data for the field with the tag we've just read.
+ This should be called directly after , when
+ the caller wishes to skip an unknown field.
+
+
+ This method throws if the last-read tag was an end-group tag.
+ If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the
+ start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly
+ resulting in an error if an end-group tag has not been paired with an earlier start-group tag.
+
+ The last tag was an end-group tag
+ The last read operation read to the end of the logical stream
+
+
+
+ Skip a group.
+
+
+
+
+ Reads a double field from the stream.
+
+
+
+
+ Reads a float field from the stream.
+
+
+
+
+ Reads a uint64 field from the stream.
+
+
+
+
+ Reads an int64 field from the stream.
+
+
+
+
+ Reads an int32 field from the stream.
+
+
+
+
+ Reads a fixed64 field from the stream.
+
+
+
+
+ Reads a fixed32 field from the stream.
+
+
+
+
+ Reads a bool field from the stream.
+
+
+
+
+ Reads a string field from the stream.
+
+
+
+
+ Reads an embedded message field value from the stream.
+
+
+
+
+ Reads an embedded group field from the stream.
+
+
+
+
+ Reads a bytes field value from the stream.
+
+
+
+
+ Reads a uint32 field value from the stream.
+
+
+
+
+ Reads an enum field value from the stream.
+
+
+
+
+ Reads an sfixed32 field value from the stream.
+
+
+
+
+ Reads an sfixed64 field value from the stream.
+
+
+
+
+ Reads an sint32 field value from the stream.
+
+
+
+
+ Reads an sint64 field value from the stream.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Reads a raw varint from the stream.
+
+
+
+
+ Reads a 32-bit little-endian integer from the stream.
+
+
+
+
+ Reads a 64-bit little-endian integer from the stream.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Called when buffer is empty to read more bytes from the
+ input. If is true, RefillBuffer() guarantees that
+ either there will be at least one byte in the buffer when it returns
+ or it will throw an exception. If is false,
+ RefillBuffer() returns false if no more bytes were available.
+
+
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a top-level message or a nested message after the limits for this message have been pushed.
+ (parser will proceed until the end of the current limit)
+ NOTE: this method needs to be public because it's invoked by the generated code - e.g. msg.MergeFrom(CodedInputStream input) method
+
+
+
+
+ Encodes and writes protocol message fields.
+
+
+
+ This class is generally used by generated code to write appropriate
+ primitives to the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format. Unlike some other implementations,
+ this does not include combined "write tag and value" methods. Generated
+ code knows the exact byte representations of the tags they're going to write,
+ so there's no need to re-encode them each time. Manually-written code calling
+ this class should just call one of the WriteTag overloads before each value.
+
+
+ Repeated fields and map fields are not handled by this class; use RepeatedField<T>
+ and MapField<TKey, TValue> to serialize such fields.
+
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ double field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ float field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bool field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ string field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ group field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ embedded message field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bytes field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ enum field, including the tag. The caller is responsible for
+ converting the enum value to its numeric value.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a length,
+ as written by .
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a tag.
+
+
+
+
+ The buffer size used by CreateInstance(Stream).
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array slice. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new which write to the given stream, and disposes of that
+ stream when the returned CodedOutputStream is disposed.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+ The size of buffer to use internally.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream.
+
+ The stream to write to.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to.
+ The size of buffer to use internally.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Returns the current position in the stream, or the position in the output buffer
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ Only the message data is written, without a length-delimiter.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Indicates that a CodedOutputStream wrapping a flat byte array
+ ran out of space.
+
+
+
+
+ Flushes any buffered data and optionally closes the underlying stream, if any.
+
+
+
+ By default, any underlying stream is closed by this method. To configure this behaviour,
+ use a constructor overload with a leaveOpen parameter. If this instance does not
+ have an underlying stream, this method does nothing.
+
+
+ For the sake of efficiency, calling this method does not prevent future write calls - but
+ if a later write ends up writing to a stream which has been disposed, that is likely to
+ fail. It is recommend that you not call any other methods after this.
+
+
+
+
+
+ Flushes any buffered data to the underlying stream (if there is one).
+
+
+
+
+ Verifies that SpaceLeft returns zero. It's common to create a byte array
+ that is exactly big enough to hold a message, then write to it with
+ a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that
+ the message was actually as big as expected, which can help finding bugs.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ Utility to compare if two Lists are the same, and the hash code
+ of a List.
+
+
+
+
+ Checks if two lists are equal.
+
+
+
+
+ Gets the list's hash code.
+
+
+
+
+ Representation of a map field in a Protocol Buffer message.
+
+ Key type in the map. Must be a type supported by Protocol Buffer map keys.
+ Value type in the map. Must be a type supported by Protocol Buffers.
+
+
+ For string keys, the equality comparison is provided by .
+
+
+ Null values are not permitted in the map, either for wrapper types or regular messages.
+ If a map is deserialized from a data stream and the value is missing from an entry, a default value
+ is created instead. For primitive types, that is the regular default value (0, the empty string and so
+ on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length
+ encoded value for the field.
+
+
+ This implementation does not generally prohibit the use of key/value types which are not
+ supported by Protocol Buffers (e.g. using a key type of byte
) but nor does it guarantee
+ that all operations will work in such cases.
+
+
+ The order in which entries are returned when iterating over this object is undefined, and may change
+ in future versions.
+
+
+
+
+
+ Creates a deep clone of this object.
+
+
+ A deep clone of this object.
+
+
+
+
+ Adds the specified key/value pair to the map.
+
+
+ This operation fails if the key already exists in the map. To replace an existing entry, use the indexer.
+
+ The key to add
+ The value to add.
+ The given key already exists in map.
+
+
+
+ Determines whether the specified key is present in the map.
+
+ The key to check.
+ true if the map contains the given key; false otherwise.
+
+
+
+ Removes the entry identified by the given key from the map.
+
+ The key indicating the entry to remove from the map.
+ true if the map contained the given key before the entry was removed; false otherwise.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key whose value to get.
+ When this method returns, the value associated with the specified key, if the key is found;
+ otherwise, the default value for the type of the parameter.
+ This parameter is passed uninitialized.
+ true if the map contains an element with the specified key; otherwise, false.
+
+
+
+ Gets or sets the value associated with the specified key.
+
+ The key of the value to get or set.
+ The property is retrieved and key does not exist in the collection.
+ The value associated with the specified key. If the specified key is not found,
+ a get operation throws a , and a set operation creates a new element with the specified key.
+
+
+
+ Gets a collection containing the keys in the map.
+
+
+
+
+ Gets a collection containing the values in the map.
+
+
+
+
+ Adds the specified entries to the map. The keys and values are not automatically cloned.
+
+ The entries to add to the map.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Adds the specified item to the map.
+
+ The item to add to the map.
+
+
+
+ Removes all items from the map.
+
+
+
+
+ Determines whether map contains an entry equivalent to the given key/value pair.
+
+ The key/value pair to find.
+
+
+
+
+ Copies the key/value pairs in this map to an array.
+
+ The array to copy the entries into.
+ The index of the array at which to start copying values.
+
+
+
+ Removes the specified key/value pair from the map.
+
+ Both the key and the value must be found for the entry to be removed.
+ The key/value pair to remove.
+ true if the key/value pair was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the map.
+
+
+
+
+ Gets a value indicating whether the map is read-only.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this map with another for equality.
+
+
+ The order of the key/value pairs in the maps is not deemed significant in this comparison.
+
+ The map to compare this with.
+ true if refers to an equal map; false otherwise.
+
+
+
+ Adds entries to the map from the given stream.
+
+
+ It is assumed that the stream is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the stream until the end is reached, or
+ a different tag is encountered.
+
+ Stream to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Adds entries to the map from the given parse context.
+
+
+ It is assumed that the input is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the input until the end is reached, or
+ a different tag is encountered.
+
+ Input to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Writes the contents of this map to the given coded output stream, using the specified codec
+ to encode each entry.
+
+ The output stream to write to.
+ The codec to use for each entry.
+
+
+
+ Writes the contents of this map to the given write context, using the specified codec
+ to encode each entry.
+
+ The write context to write to.
+ The codec to use for each entry.
+
+
+
+ Calculates the size of this map based on the given entry codec.
+
+ The codec to use to encode each entry.
+
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ A codec for a specific map field. This contains all the information required to encode and
+ decode the nested messages.
+
+
+
+
+ Creates a new entry codec based on a separate key codec and value codec,
+ and the tag to use for each map entry.
+
+ The key codec.
+ The value codec.
+ The map tag to use to introduce each map entry.
+
+
+
+ The key codec.
+
+
+
+
+ The value codec.
+
+
+
+
+ The tag used in the enclosing message to indicate map entries.
+
+
+
+
+ Provides a central place to implement equality comparisons, primarily for bitwise float/double equality.
+
+
+
+
+ Returns an equality comparer for suitable for Protobuf equality comparisons.
+ This is usually just the default equality comparer for the type, but floating point numbers are compared
+ bitwise.
+
+ The type of equality comparer to return.
+ The equality comparer.
+
+
+
+ Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Read-only wrapper around another dictionary.
+
+
+
+
+ The contents of a repeated field: essentially, a collection with some extra
+ restrictions (no null values) and capabilities (deep cloning).
+
+
+ This implementation does not generally prohibit the use of types which are not
+ supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases.
+
+ The element type of the repeated field.
+
+
+
+ Creates a deep clone of this repeated field.
+
+
+ If the field type is
+ a message type, each element is also cloned; otherwise, it is
+ assumed that the field type is primitive (including string and
+ bytes, both of which are immutable) and so a simple copy is
+ equivalent to a deep clone.
+
+ A deep clone of this repeated field.
+
+
+
+ Adds the entries from the given input stream, decoding them with the specified codec.
+
+ The input stream to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Adds the entries from the given parse context, decoding them with the specified codec.
+
+ The input to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Calculates the size of this collection based on the given codec.
+
+ The codec to use when encoding each field.
+ The number of bytes that would be written to an output by one of the WriteTo methods,
+ using the same codec.
+
+
+
+ Writes the contents of this collection to the given ,
+ encoding each value using the specified codec.
+
+ The output stream to write to.
+ The codec to use when encoding each value.
+
+
+
+ Writes the contents of this collection to the given write context,
+ encoding each value using the specified codec.
+
+ The write context to write to.
+ The codec to use when encoding each value.
+
+
+
+ Gets and sets the capacity of the RepeatedField's internal array. WHen set, the internal array is reallocated to the given capacity.
+ The new value is less than Count -or- when Count is less than 0.
+
+
+
+
+ Adds the specified item to the collection.
+
+ The item to add.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Determines whether this collection contains the given item.
+
+ The item to find.
+ true if this collection contains the given item; false otherwise.
+
+
+
+ Copies this collection to the given array.
+
+ The array to copy to.
+ The first index of the array to copy to.
+
+
+
+ Removes the specified item from the collection
+
+ The item to remove.
+ true if the item was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the collection.
+
+
+
+
+ Gets a value indicating whether the collection is read-only.
+
+
+
+
+ Adds all of the specified values into this collection.
+
+ The values to add to this collection.
+
+
+
+ Adds all of the specified values into this collection. This method is present to
+ allow repeated fields to be constructed from queries within collection initializers.
+ Within non-collection-initializer code, consider using the equivalent
+ method instead for clarity.
+
+ The values to add to this collection.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this repeated field with another for equality.
+
+ The repeated field to compare this with.
+ true if refers to an equal repeated field; false otherwise.
+
+
+
+ Returns the index of the given item within the collection, or -1 if the item is not
+ present.
+
+ The item to find in the collection.
+ The zero-based index of the item, or -1 if it is not found.
+
+
+
+ Inserts the given item at the specified index.
+
+ The index at which to insert the item.
+ The item to insert.
+
+
+
+ Removes the item at the given index.
+
+ The zero-based index of the item to remove.
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ Gets or sets the item at the specified index.
+
+
+ The element at the specified index.
+
+ The zero-based index of the element to get or set.
+ The item at the specified index.
+
+
+
+ Extension methods for , effectively providing
+ the familiar members from previous desktop framework versions while
+ targeting the newer releases, .NET Core etc.
+
+
+
+
+ Returns the public getter of a property, or null if there is no such getter
+ (either because it's read-only, or the getter isn't public).
+
+
+
+
+ Returns the public setter of a property, or null if there is no such setter
+ (either because it's write-only, or the setter isn't public).
+
+
+
+
+ Provides extension methods on Type that just proxy to TypeInfo.
+ These are used to support the new type system from .NET 4.5, without
+ having calls to GetTypeInfo all over the place. While the methods here are meant to be
+ broadly compatible with the desktop framework, there are some subtle differences in behaviour - but
+ they're not expected to affect our use cases. While the class is internal, that should be fine: we can
+ evaluate each new use appropriately.
+
+
+
+
+ See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom
+
+
+
+
+ Returns a representation of the public property associated with the given name in the given type,
+ including inherited properties or null if there is no such public property.
+ Here, "public property" means a property where either the getter, or the setter, or both, is public.
+
+
+
+
+ Returns a representation of the public method associated with the given name in the given type,
+ including inherited methods.
+
+
+ This has a few differences compared with Type.GetMethod in the desktop framework. It will throw
+ if there is an ambiguous match even between a private method and a public one, but it *won't* throw
+ if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and
+ class Child : Base declares public void Foo(long)).
+
+ One type in the hierarchy declared more than one method with the same name
+
+
+
+ Represents a non-generic extension definition. This API is experimental and subject to change.
+
+
+
+
+ Internal use. Creates a new extension with the specified field number.
+
+
+
+
+ Gets the field number of this extension
+
+
+
+
+ Represents a type-safe extension identifier used for getting and setting single extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The field value type of this extension
+
+
+
+ Creates a new extension identifier with the specified field number and codec
+
+
+
+
+ Represents a type-safe extension identifier used for getting repeated extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The repeated field value type of this extension
+
+
+
+ Creates a new repeated extension identifier with the specified field number and codec
+
+
+
+
+ Provides extensions to messages while parsing. This API is experimental and subject to change.
+
+
+
+
+ Creates a new empty extension registry
+
+
+
+
+ Gets the total number of extensions in this extension registry
+
+
+
+
+ Returns whether the registry is readonly
+
+
+
+
+ Adds the specified extension to the registry
+
+
+
+
+ Adds the specified extensions to the registry
+
+
+
+
+ Clears the registry of all values
+
+
+
+
+ Gets whether the extension registry contains the specified extension
+
+
+
+
+ Copies the arrays in the registry set to the specified array at the specified index
+
+ The array to copy to
+ The array index to start at
+
+
+
+ Returns an enumerator to enumerate through the items in the registry
+
+ Returns an enumerator for the extensions in this registry
+
+
+
+ Removes the specified extension from the set
+
+ The extension
+ true if the extension was removed, otherwise false
+
+
+
+ Clones the registry into a new registry
+
+
+
+
+ Methods for managing s with null checking.
+
+ Most users will not use this class directly and its API is experimental and subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if it doesn't exist in this set
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it doesn't exist
+
+
+
+
+ Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null.
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Merges the second set into the first set, creating a new instance if first is null
+
+
+
+
+ Clones the set into a new set. If the set is null, this returns null
+
+
+
+
+ Used for keeping track of extensions in messages.
+ methods route to this set.
+
+ Most users will not need to use this class directly
+
+ The message type that extensions in this set target
+
+
+
+ Gets a hash code of the set
+
+
+
+
+ Returns whether this set is equal to the other object
+
+
+
+
+ Calculates the size of this extension set
+
+
+
+
+ Writes the extension values in this set to the output stream
+
+
+
+
+ Writes the extension values in this set to the write context
+
+
+
+
+ Factory methods for .
+
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a message field with the given tag.
+
+ The tag.
+ A parser to use for the message type.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a group field with the given tag.
+
+ The start group tag.
+ The end group tag.
+ A parser to use for the group message type.
+ A codec for given tag
+
+
+
+ Creates a codec for a wrapper type of a class - which must be string or ByteString.
+
+
+
+
+ Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64,
+ Bool, Single or Double.
+
+
+
+
+ Helper code to create codecs for wrapper types.
+
+
+ Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it
+ slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place,
+ we can refactor later if we come up with something cleaner.
+
+
+
+
+ Returns a field codec which effectively wraps a value of type T in a message.
+
+
+
+
+
+
+ An encode/decode pair for a single field. This effectively encapsulates
+ all the information needed to read or write the field value from/to a coded
+ stream.
+
+
+ This class is public and has to be as it is used by generated code, but its public
+ API is very limited - just what the generated code needs to call directly.
+
+
+
+ This never writes default values to the stream, and does not address "packedness"
+ in repeated fields itself, other than to know whether or not the field *should* be packed.
+
+
+
+
+ Merges an input stream into a value
+
+
+
+
+ Merges a value into a reference to another value, returning a boolean if the value was set
+
+
+
+
+ Returns a delegate to write a value (unconditionally) to a coded output stream.
+
+
+
+
+ Returns the size calculator for just a value.
+
+
+
+
+ Returns a delegate to read a value from a coded input stream. It is assumed that
+ the stream is already positioned on the appropriate tag.
+
+
+
+
+ Returns a delegate to merge a value from a coded input stream.
+ It is assumed that the stream is already positioned on the appropriate tag
+
+
+
+
+ Returns a delegate to merge two values together.
+
+
+
+
+ Returns the fixed size for an entry, or 0 if sizes vary.
+
+
+
+
+ Gets the tag of the codec.
+
+
+ The tag of the codec.
+
+
+
+
+ Gets the end tag of the codec or 0 if there is no end tag
+
+
+ The end tag of the codec.
+
+
+
+
+ Default value for this codec. Usually the same for every instance of the same type, but
+ for string/ByteString wrapper fields the codec's default value is null, whereas for
+ other string/ByteString fields it's "" or ByteString.Empty.
+
+
+ The default value of the codec's type.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Reads a value of the codec type from the given .
+
+ The input stream to read from.
+ The value read from the stream.
+
+
+
+ Reads a value of the codec type from the given .
+
+ The parse context to read from.
+ The value read.
+
+
+
+ Calculates the size required to write the given value, with a tag,
+ if the value is not the default.
+
+
+
+
+ Calculates the size required to write the given value, with a tag, even
+ if the value is the default.
+
+
+
+
+ A tree representation of a FieldMask. Each leaf node in this tree represent
+ a field path in the FieldMask.
+
+ For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be:
+
+ [root] -+- foo -+- bar
+ | |
+ | +- baz
+ |
+ +- bar --- baz
+
+
+ By representing FieldMasks with this tree structure we can easily convert
+ a FieldMask to a canonical form, merge two FieldMasks, calculate the
+ intersection to two FieldMasks and traverse all fields specified by the
+ FieldMask in a message tree.
+
+
+
+
+ Creates an empty FieldMaskTree.
+
+
+
+
+ Creates a FieldMaskTree for a given FieldMask.
+
+
+
+
+ Adds a field path to the tree. In a FieldMask, every field path matches the
+ specified field as well as all its sub-fields. For example, a field path
+ "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding
+ a field path to the tree, redundant sub-paths will be removed. That is,
+ after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it
+ exists, which will turn the tree node for "foo.bar" to a leaf node.
+ Likewise, if the field path to add is a sub-path of an existing leaf node,
+ nothing will be changed in the tree.
+
+
+
+
+ Merges all field paths in a FieldMask into this tree.
+
+
+
+
+ Converts this tree to a FieldMask.
+
+
+
+
+ Gathers all field paths in a sub-tree.
+
+
+
+
+ Adds the intersection of this tree with the given to .
+
+
+
+
+ Merges all fields specified by this FieldMaskTree from to .
+
+
+
+
+ Merges all fields specified by a sub-tree from to .
+
+
+
+
+ Class containing helpful workarounds for various platform compatibility
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ parsing from and writing to .
+
+
+
+
+ Internal implementation of merging data from given parse context into this message.
+ Users should never invoke this method directly.
+
+
+
+
+ Internal implementation of writing this message to a given write context.
+ Users should never invoke this method directly.
+
+
+
+
+ A message type that has a custom string format for diagnostic purposes.
+
+
+
+ Calling on a generated message type normally
+ returns the JSON representation. If a message type implements this interface,
+ then the method will be called instead of the regular
+ JSON formatting code, but only when ToString() is called either on the message itself
+ or on another message which contains it. This does not affect the normal JSON formatting of
+ the message.
+
+
+ For example, if you create a proto message representing a GUID, the internal
+ representation may be a bytes field or four fixed32 fields. However, when debugging
+ it may be more convenient to see a result in the same format as provides.
+
+ This interface extends to avoid it accidentally being implemented
+ on types other than messages, where it would not be used by anything in the framework.
+
+
+
+
+ Returns a string representation of this object, for diagnostic purposes.
+
+
+ This method is called when a message is formatted as part of a
+ call. It does not affect the JSON representation used by other than
+ in calls to . While it is recommended
+ that the result is valid JSON, this is never assumed by the Protobuf library.
+
+ A string representation of this object, for diagnostic purposes.
+
+
+
+ Generic interface for a deeply cloneable type.
+
+
+
+ All generated messages implement this interface, but so do some non-message types.
+ Additionally, due to the type constraint on T in ,
+ it is simpler to keep this as a separate interface.
+
+
+ The type itself, returned by the method.
+
+
+
+ Creates a deep clone of this object.
+
+ A deep clone of this object.
+
+
+
+ Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class.
+ This interface is experiemental and is subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if the extension isn't registered in this set.
+ For a version of this method that never returns null, use
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it hasn't already been registered.
+
+
+
+
+ Sets the value of the specified extension
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified repeated extension
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ basic operations required for serialization.
+
+
+
+
+ Merges the data from the specified coded input stream with the current message.
+
+ See the user guide for precise merge semantics.
+
+
+
+
+ Writes the data to the given coded output stream.
+
+ Coded output stream to write the data to. Must not be null.
+
+
+
+ Calculates the size of this message in Protocol Buffer wire format, in bytes.
+
+ The number of bytes required to write this message
+ to a coded output stream.
+
+
+
+ Descriptor for this message. All instances are expected to return the same descriptor,
+ and for generated types this will be an explicitly-implemented member, returning the
+ same value as the static property declared on the type.
+
+
+
+
+ Generic interface for a Protocol Buffers message,
+ where the type parameter is expected to be the same type as
+ the implementation class.
+
+ The message type.
+
+
+
+ Merges the given message into this one.
+
+ See the user guide for precise merge semantics.
+ The message to merge with this one. Must not be null.
+
+
+
+ Thrown when an attempt is made to parse invalid JSON, e.g. using
+ a non-string property key, or including a redundant comma. Parsing a protocol buffer
+ message represented in JSON using can throw both this
+ exception and depending on the situation. This
+ exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException
+ is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer
+ message.
+
+
+
+
+ Thrown when a protocol message being parsed is invalid in some way,
+ e.g. it contains a malformed varint or a negative byte length.
+
+
+
+
+ Creates an exception for an error condition of an invalid tag being encountered.
+
+
+
+
+ Reflection-based converter from messages to JSON.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON formatting working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ The JSON representation of the first 160 characters of Unicode.
+ Empty strings are replaced by the static constructor.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The formatted message.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The TextWriter to write the formatted message to.
+ The formatted message.
+
+
+
+ Converts a message to JSON for diagnostic purposes with no extra context.
+
+
+
+ This differs from calling on the default JSON
+ formatter in its handling of . As no type registry is available
+ in calls, the normal way of resolving the type of
+ an Any message cannot be applied. Instead, a JSON property named @value
+ is included with the base64 data from the property of the message.
+
+ The value returned by this method is only designed to be used for diagnostic
+ purposes. It may not be parsable by , and may not be parsable
+ by other Protocol Buffer implementations.
+
+ The message to format for diagnostic purposes.
+ The diagnostic-only JSON representation of the message
+
+
+
+ Determines whether or not a field value should be serialized according to the field,
+ its value in the message, and the settings of this formatter.
+
+
+
+
+ Writes a single value to the given writer as JSON. Only types understood by
+ Protocol Buffers can be written in this way. This method is only exposed for
+ advanced use cases; most users should be using
+ or .
+
+ The writer to write the value to. Must not be null.
+ The value to write. May be null.
+
+
+
+ Central interception point for well-known type formatting. Any well-known types which
+ don't need special handling can fall back to WriteMessage. We avoid assuming that the
+ values are using the embedded well-known types, in order to allow for dynamic messages
+ in the future.
+
+
+
+
+ Writes a string (including leading and trailing double quotes) to a builder, escaping as required.
+
+
+ Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc.
+
+
+
+
+ Settings controlling JSON formatting.
+
+
+
+
+ Default settings, as used by
+
+
+
+
+ Whether fields which would otherwise not be included in the formatted data
+ should be formatted even when the value is not present, or has the default value.
+ This option only affects fields which don't support "presence" (e.g.
+ singular non-optional proto3 primitive fields).
+
+
+
+
+ The type registry used to format messages.
+
+
+
+
+ Whether to format enums as ints. Defaults to false.
+
+
+
+
+ Whether to use the original proto field names as defined in the .proto file. Defaults to false.
+
+
+
+
+ Creates a new object with the specified formatting of default values
+ and an empty type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified formatting of default values
+ and type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified parameters.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages. TypeRegistry.Empty will be used if it is null.
+ true to format the enums as integers; false to format enums as enum names.
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Creates a new object with the specified formatting of default values and the current settings.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified type registry and the current settings.
+
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified enums formatting option and the current settings.
+
+ true to format the enums as integers; false to format enums as enum names.
+
+
+
+ Creates a new object with the specified field name formatting option and the current settings.
+
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Reflection-based converter from JSON to messages.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON parsing working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Parses and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ The JSON to parse.
+
+
+
+ Parses JSON read from and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ Reader providing the JSON to parse.
+
+
+
+ Merges the given message using data from the given tokenizer. In most cases, the next
+ token should be a "start object" token, but wrapper types and nullity can invalidate
+ that assumption. This is implemented as an LL(1) recursive descent parser over the stream
+ of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the
+ tokenizer performing that validation - but not every token stream is valid "protobuf JSON".
+
+
+
+
+ Parses into a new message.
+
+ The type of message to create.
+ The JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ The type of message to create.
+ Reader providing the JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses into a new message.
+
+ The JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ Reader providing the JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new instance of the message type for the given field.
+
+
+
+
+ Checks that any infinite/NaN values originated from the correct text.
+ This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the
+ way that Mono parses out-of-range values as infinity.
+
+
+
+
+ Settings controlling JSON parsing.
+
+
+
+
+ Default settings, as used by . This has the same default
+ recursion limit as , and an empty type registry.
+
+
+
+
+ The maximum depth of messages to parse. Note that this limit only applies to parsing
+ messages, not collections - so a message within a collection within a message only counts as
+ depth 2, not 3.
+
+
+
+
+ The type registry used to parse messages.
+
+
+
+
+ Whether the parser should ignore unknown fields (true) or throw an exception when
+ they are encountered (false).
+
+
+
+
+ Creates a new object with the specified recursion limit.
+
+ The maximum depth of messages to parse
+
+
+
+ Creates a new object with the specified recursion limit and type registry.
+
+ The maximum depth of messages to parse
+ The type registry used to parse messages
+
+
+
+ Creates a new object set to either ignore unknown fields, or throw an exception
+ when unknown fields are encountered.
+
+ true if unknown fields should be ignored when parsing; false to throw an exception.
+
+
+
+ Creates a new object based on this one, but with the specified recursion limit.
+
+ The new recursion limit.
+
+
+
+ Creates a new object based on this one, but with the specified type registry.
+
+ The new type registry. Must not be null.
+
+
+
+ Simple but strict JSON tokenizer, rigidly following RFC 7159.
+
+
+
+ This tokenizer is stateful, and only returns "useful" tokens - names, values etc.
+ It does not create tokens for the separator between names and values, or for the comma
+ between values. It validates the token stream as it goes - so callers can assume that the
+ tokens it produces are appropriate. For example, it would never produce "start object, end array."
+
+ Implementation details: the base class handles single token push-back and
+ Not thread-safe.
+
+
+
+
+ Creates a tokenizer that reads from the given text reader.
+
+
+
+
+ Creates a tokenizer that first replays the given list of tokens, then continues reading
+ from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back
+ on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was
+ created for the sake of Any parsing.
+
+
+
+
+ Returns the depth of the stack, purely in objects (not collections).
+ Informally, this is the number of remaining unclosed '{' characters we have.
+
+
+
+
+ Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream,
+ after which point Next() should not be called again.
+
+ This implementation provides single-token buffering, and calls if there is no buffered token.
+ The next token in the stream. This is never null.
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Returns the next JSON token in the stream, when requested by the base class. (The method delegates
+ to this if it doesn't have a buffered token.)
+
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Skips the value we're about to read. This must only be called immediately after reading a property name.
+ If the value is an object or an array, the complete object/array is skipped.
+
+
+
+
+ Tokenizer which first exhausts a list of tokens, then consults another tokenizer.
+
+
+
+
+ Tokenizer which does all the *real* work of parsing JSON.
+
+
+
+
+ This method essentially just loops through characters skipping whitespace, validating and
+ changing state (e.g. from ObjectBeforeColon to ObjectAfterColon)
+ until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point
+ it returns the token. Although the method is large, it would be relatively hard to break down further... most
+ of it is the large switch statement, which sometimes returns and sometimes doesn't.
+
+
+
+
+ Reads a string token. It is assumed that the opening " has already been read.
+
+
+
+
+ Reads an escaped character. It is assumed that the leading backslash has already been read.
+
+
+
+
+ Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read.
+
+
+
+
+ Consumes a text-only literal, throwing an exception if the read text doesn't match it.
+ It is assumed that the first letter of the literal has already been read.
+
+
+
+
+ Validates that we're in a valid state to read a value (using the given error prefix if necessary)
+ and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty.
+
+
+
+
+ Pops the top-most container, and sets the state to the appropriate one for the end of a value
+ in the parent container.
+
+
+
+
+ Possible states of the tokenizer.
+
+
+ This is a flags enum purely so we can simply and efficiently represent a set of valid states
+ for checking.
+
+ Each is documented with an example,
+ where ^ represents the current position within the text stream. The examples all use string values,
+ but could be any value, including nested objects/arrays.
+ The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects).
+ Any additional notional state of "AfterValue" indicates that a value has been completed, at which
+ point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue.
+
+
+ These states were derived manually by reading RFC 7159 carefully.
+
+
+
+
+
+ ^ { "foo": "bar" }
+ Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue"
+
+
+
+
+ { "foo": "bar" } ^
+ After the value in a document. Next states: ReaderExhausted
+
+
+
+
+ { "foo": "bar" } ^ (and already read to the end of the reader)
+ Terminal state.
+
+
+
+
+ { ^ "foo": "bar" }
+ Before the *first* property in an object.
+ Next states:
+ "AfterValue" (empty object)
+ ObjectBeforeColon (read a name)
+
+
+
+
+ { "foo" ^ : "bar", "x": "y" }
+ Next state: ObjectAfterColon
+
+
+
+
+ { "foo" : ^ "bar", "x": "y" }
+ Before any property other than the first in an object.
+ (Equivalently: after any property in an object)
+ Next states:
+ "AfterValue" (value is simple)
+ ObjectStart (value is object)
+ ArrayStart (value is array)
+
+
+
+
+ { "foo" : "bar" ^ , "x" : "y" }
+ At the end of a property, so expecting either a comma or end-of-object
+ Next states: ObjectAfterComma or "AfterValue"
+
+
+
+
+ { "foo":"bar", ^ "x":"y" }
+ Read the comma after the previous property, so expecting another property.
+ This is like ObjectStart, but closing brace isn't valid here
+ Next state: ObjectBeforeColon.
+
+
+
+
+ [ ^ "foo", "bar" ]
+ Before the *first* value in an array.
+ Next states:
+ "AfterValue" (read a value)
+ "AfterValue" (end of array; will pop stack)
+
+
+
+
+ [ "foo" ^ , "bar" ]
+ After any value in an array, so expecting either a comma or end-of-array
+ Next states: ArrayAfterComma or "AfterValue"
+
+
+
+
+ [ "foo", ^ "bar" ]
+ After a comma in an array, so there *must* be another value (simple or complex).
+ Next states: "AfterValue" (simple value), StartObject, StartArray
+
+
+
+
+ Wrapper around a text reader allowing small amounts of buffering and location handling.
+
+
+
+
+ The buffered next character, if we have one.
+
+
+
+
+ Returns the next character in the stream, or null if we have reached the end.
+
+
+
+
+
+ Creates a new exception appropriate for the current state of the reader.
+
+
+
+
+ Stream implementation which proxies another stream, only allowing a certain amount
+ of data to be read. Note that this is only used to read delimited streams, so it
+ doesn't attempt to implement everything.
+
+
+
+
+ Extension methods on and .
+
+
+
+
+ Merges data from the given byte array into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given byte array slice into an existing message.
+
+ The message to merge the data into.
+ The data containing the slice to merge, which must be protobuf-encoded binary data.
+ The offset of the slice to merge.
+ The length of the slice to merge.
+
+
+
+ Merges data from the given byte string into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given stream into an existing message.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given span into an existing message.
+
+ The message to merge the data into.
+ Span containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges length-delimited data from the given stream into an existing message.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Converts the given message into a byte array in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte array.
+
+
+
+ Writes the given message data to the given stream in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the length and then data of the given message to a stream.
+
+ The message to write.
+ The output stream to write to.
+
+
+
+ Converts the given message into a byte string in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte string.
+
+
+
+ Writes the given message data to the given buffer writer in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the given message data to the given span in protobuf encoding.
+ The size of the destination span needs to fit the serialized size
+ of the message exactly, otherwise an exception is thrown.
+
+ The message to write to the stream.
+ The span to write to. Size must match size of the message exactly.
+
+
+
+ Checks if all required fields in a message have values set. For proto3 messages, this returns true
+
+
+
+
+ A general message parser, typically used by reflection-based code as all the methods
+ return simple .
+
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ A parser for a specific message type.
+
+
+
+ This delegates most behavior to the
+ implementation within the original type, but
+ provides convenient overloads to parse from a variety of sources.
+
+
+ Most applications will never need to create their own instances of this type;
+ instead, use the static Parser property of a generated message type to obtain a
+ parser for that type.
+
+
+ The type of message to be parsed.
+
+
+
+ Creates a new parser.
+
+
+ The factory method is effectively an optimization over using a generic constraint
+ to require a parameterless constructor: delegates are significantly faster to execute.
+
+ Function to invoke when a new, empty message is required.
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the
+ extensionByNumber table in ExtensionRegistry.
+
+
+
+
+ An opaque struct that represents the current parsing state and is passed along
+ as the parsing proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Initialize a , building all from defaults and
+ the given .
+
+
+
+
+ Initialize a using existing , e.g. from .
+
+
+
+
+ Creates a ParseContext instance from CodedInputStream.
+ WARNING: internally this copies the CodedInputStream's state, so after done with the ParseContext,
+ the CodedInputStream's state needs to be updated.
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the input.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of input".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputReader; it may be the end of the logical input
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of input. (0 is never a valid tag.)
+
+
+
+ Reads a double field from the input.
+
+
+
+
+ Reads a float field from the input.
+
+
+
+
+ Reads a uint64 field from the input.
+
+
+
+
+ Reads an int64 field from the input.
+
+
+
+
+ Reads an int32 field from the input.
+
+
+
+
+ Reads a fixed64 field from the input.
+
+
+
+
+ Reads a fixed32 field from the input.
+
+
+
+
+ Reads a bool field from the input.
+
+
+
+
+ Reads a string field from the input.
+
+
+
+
+ Reads an embedded message field value from the input.
+
+
+
+
+ Reads an embedded group field from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a uint32 field value from the input.
+
+
+
+
+ Reads an enum field value from the input.
+
+
+
+
+ Reads an sfixed32 field value from the input.
+
+
+
+
+ Reads an sfixed64 field value from the input.
+
+
+
+
+ Reads an sint32 field value from the input.
+
+
+
+
+ Reads an sint64 field value from the input.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ The position within the current buffer (i.e. the next byte to read)
+
+
+
+
+ Size of the current buffer
+
+
+
+
+ If we are currently inside a length-delimited block, this is the number of
+ bytes in the buffer that are still available once we leave the delimited block.
+
+
+
+
+ The absolute position of the end of the current length-delimited block (including totalBytesRetired)
+
+
+
+
+ The total number of consumed before the start of the current buffer. The
+ total bytes read up to the current position can be computed as
+ totalBytesRetired + bufferPos.
+
+
+
+
+ The last tag we read. 0 indicates we've read to the end of the stream
+ (or haven't read anything yet).
+
+
+
+
+ The next tag, used to store the value read by PeekTag.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Primitives for parsing protobuf wire format.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Parses the next tag.
+ If the end of logical stream was reached, an invalid tag of 0 is returned.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Parses a raw varint.
+
+
+
+
+ Parses a raw Varint. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Parses a 32-bit little-endian integer.
+
+
+
+
+ Parses a 64-bit little-endian integer.
+
+
+
+
+ Parses a double value.
+
+
+
+
+ Parses a float value.
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads and discards bytes.
+
+ the end of the stream
+ or the current limit was reached
+
+
+
+ Reads a string field value from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a UTF-8 string from the next "length" bytes.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a string assuming that it is spread across multiple spans in a .
+
+
+
+
+ Validates that the specified size doesn't exceed the current limit. If it does then remaining bytes
+ are skipped and an error is thrown.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Decode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 32 bits to be varint encoded, thus always taking
+ 5 bytes on the wire.)
+
+
+
+
+ Decode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse.
+ When parsing from a Stream this can return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse
+ in the underlying data source.
+ When parsing from a Stream this will return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Read raw bytes of the specified length into a span. The amount of data available and the current limit should
+ be checked before calling this method.
+
+
+
+
+ Reading and skipping messages / groups
+
+
+
+
+ Skip a group.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Fast parsing primitives for wrapper types
+
+
+
+
+ Helper methods for throwing exceptions when preconditions are not met.
+
+
+ This class is used internally and by generated code; it is not particularly
+ expected to be used from application code, although nothing prevents it
+ from being used that way.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+ This is equivalent to but without the type parameter
+ constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
+ with a value type - but it gets in the way if either you want to use it with a nullable
+ value type, or you want to use it with an unconstrained type parameter.
+
+
+
+
+ Container for a set of custom options specified within a message, field etc.
+
+
+
+ This type is publicly immutable, but internally mutable. It is only populated
+ by the descriptor parsing code - by the time any user code is able to see an instance,
+ it will be fully initialized.
+
+
+ If an option is requested using the incorrect method, an answer may still be returned: all
+ of the numeric types are represented internally using 64-bit integers, for example. It is up to
+ the caller to ensure that they make the appropriate method call for the option they're interested in.
+ Note that enum options are simply stored as integers, so the value should be fetched using
+ and then cast appropriately.
+
+
+ Repeated options are currently not supported. Asking for a single value of an option
+ which was actually repeated will return the last value, except for message types where
+ all the set values are merged together.
+
+
+
+
+
+ Retrieves a Boolean value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 32-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 64-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a string value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a bytes value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a message value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+ Holder for reflection information generated from google/protobuf/descriptor.proto
+
+
+ File descriptor for google/protobuf/descriptor.proto
+
+
+
+ The protocol compiler can output a FileDescriptorSet containing the .proto
+ files it parses.
+
+
+
+ Field number for the "file" field.
+
+
+
+ Describes a complete .proto file.
+
+
+
+ Field number for the "name" field.
+
+
+
+ file name, relative to root of source tree
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "package" field.
+
+
+
+ e.g. "foo", "foo.bar", etc.
+
+
+
+ Gets whether the "package" field is set
+
+
+ Clears the value of the "package" field
+
+
+ Field number for the "dependency" field.
+
+
+
+ Names of files imported by this file.
+
+
+
+ Field number for the "public_dependency" field.
+
+
+
+ Indexes of the public imported files in the dependency list above.
+
+
+
+ Field number for the "weak_dependency" field.
+
+
+
+ Indexes of the weak imported files in the dependency list.
+ For Google-internal migration only. Do not use.
+
+
+
+ Field number for the "message_type" field.
+
+
+
+ All top-level definitions in this file.
+
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "service" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "source_code_info" field.
+
+
+
+ This field contains optional information about the original source code.
+ You may safely remove this entire field without harming runtime
+ functionality of the descriptors -- the information is needed only by
+ development tools.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The syntax of the proto file.
+ The supported values are "proto2" and "proto3".
+
+
+
+ Gets whether the "syntax" field is set
+
+
+ Clears the value of the "syntax" field
+
+
+
+ Describes a message type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "field" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "nested_type" field.
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "extension_range" field.
+
+
+ Field number for the "oneof_decl" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved field names, which may not be used by fields in the same message.
+ A given name may only be reserved once.
+
+
+
+ Container for nested types declared in the DescriptorProto message type.
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "options" field.
+
+
+
+ Range of reserved tag numbers. Reserved tag numbers may not be used by
+ fields or extension ranges in the same message. Reserved ranges may
+ not overlap.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+
+ Describes a field within a message.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "label" field.
+
+
+ Gets whether the "label" field is set
+
+
+ Clears the value of the "label" field
+
+
+ Field number for the "type" field.
+
+
+
+ If type_name is set, this need not be set. If both this and type_name
+ are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "type_name" field.
+
+
+
+ For message and enum types, this is the name of the type. If the name
+ starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
+ rules are used to find the type (i.e. first the nested types within this
+ message are searched, then within the parent, on up to the root
+ namespace).
+
+
+
+ Gets whether the "type_name" field is set
+
+
+ Clears the value of the "type_name" field
+
+
+ Field number for the "extendee" field.
+
+
+
+ For extensions, this is the name of the type being extended. It is
+ resolved in the same manner as type_name.
+
+
+
+ Gets whether the "extendee" field is set
+
+
+ Clears the value of the "extendee" field
+
+
+ Field number for the "default_value" field.
+
+
+
+ For numeric types, contains the original text representation of the value.
+ For booleans, "true" or "false".
+ For strings, contains the default text contents (not escaped in any way).
+ For bytes, contains the C escaped value. All bytes >= 128 are escaped.
+
+
+
+ Gets whether the "default_value" field is set
+
+
+ Clears the value of the "default_value" field
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ If set, gives the index of a oneof in the containing type's oneof_decl
+ list. This field is a member of that oneof.
+
+
+
+ Gets whether the "oneof_index" field is set
+
+
+ Clears the value of the "oneof_index" field
+
+
+ Field number for the "json_name" field.
+
+
+
+ JSON name of this field. The value is set by protocol compiler. If the
+ user has set a "json_name" option on this field, that option's value
+ will be used. Otherwise, it's deduced from the field's name by converting
+ it to camelCase.
+
+
+
+ Gets whether the "json_name" field is set
+
+
+ Clears the value of the "json_name" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "proto3_optional" field.
+
+
+
+ If true, this is a proto3 "optional". When a proto3 field is optional, it
+ tracks presence regardless of field type.
+
+ When proto3_optional is true, this field must be belong to a oneof to
+ signal to old proto3 clients that presence is tracked for this field. This
+ oneof is known as a "synthetic" oneof, and this field must be its sole
+ member (each proto3 optional field gets its own synthetic oneof). Synthetic
+ oneofs exist in the descriptor only, and do not generate any API. Synthetic
+ oneofs must be ordered after all "real" oneofs.
+
+ For message fields, proto3_optional doesn't create any semantic change,
+ since non-repeated message fields always track presence. However it still
+ indicates the semantic detail of whether the user wrote "optional" or not.
+ This can be useful for round-tripping the .proto file. For consistency we
+ give message fields a synthetic oneof also, even though it is not required
+ to track presence. This is especially important because the parser can't
+ tell if a field is a message or an enum, so it must always create a
+ synthetic oneof.
+
+ Proto2 optional fields do not set this flag, because they already indicate
+ optional with `LABEL_OPTIONAL`.
+
+
+
+ Gets whether the "proto3_optional" field is set
+
+
+ Clears the value of the "proto3_optional" field
+
+
+ Container for nested types declared in the FieldDescriptorProto message type.
+
+
+
+ 0 is reserved for errors.
+ Order is weird for historical reasons.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
+ negative values are likely.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
+ negative values are likely.
+
+
+
+
+ Tag-delimited aggregate.
+ Group type is deprecated and not supported in proto3. However, Proto3
+ implementations should still be able to parse the group wire format and
+ treat group fields as unknown fields.
+
+
+
+
+ Length-delimited aggregate.
+
+
+
+
+ New in version 2.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ 0 is reserved for errors
+
+
+
+
+ Describes a oneof.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes an enum type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+
+ Range of reserved numeric values. Reserved numeric values may not be used
+ by enum values in the same enum declaration. Reserved ranges may not
+ overlap.
+
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved enum value names, which may not be reused. A given name may only
+ be reserved once.
+
+
+
+ Container for nested types declared in the EnumDescriptorProto message type.
+
+
+
+ Range of reserved numeric values. Reserved values may not be used by
+ entries in the same enum. Reserved ranges may not overlap.
+
+ Note that this is distinct from DescriptorProto.ReservedRange in that it
+ is inclusive such that it can appropriately represent the entire int32
+ domain.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Describes a value within an enum.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "method" field.
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a method of a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "input_type" field.
+
+
+
+ Input and output type names. These are resolved in the same way as
+ FieldDescriptorProto.type_name, but must refer to a message type.
+
+
+
+ Gets whether the "input_type" field is set
+
+
+ Clears the value of the "input_type" field
+
+
+ Field number for the "output_type" field.
+
+
+ Gets whether the "output_type" field is set
+
+
+ Clears the value of the "output_type" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "client_streaming" field.
+
+
+
+ Identifies if client streams multiple client messages
+
+
+
+ Gets whether the "client_streaming" field is set
+
+
+ Clears the value of the "client_streaming" field
+
+
+ Field number for the "server_streaming" field.
+
+
+
+ Identifies if server streams multiple server messages
+
+
+
+ Gets whether the "server_streaming" field is set
+
+
+ Clears the value of the "server_streaming" field
+
+
+ Field number for the "java_package" field.
+
+
+
+ Sets the Java package where classes generated from this .proto will be
+ placed. By default, the proto package is used, but this is often
+ inappropriate because proto packages do not normally start with backwards
+ domain names.
+
+
+
+ Gets whether the "java_package" field is set
+
+
+ Clears the value of the "java_package" field
+
+
+ Field number for the "java_outer_classname" field.
+
+
+
+ Controls the name of the wrapper Java class generated for the .proto file.
+ That class will always contain the .proto file's getDescriptor() method as
+ well as any top-level extensions defined in the .proto file.
+ If java_multiple_files is disabled, then all the other classes from the
+ .proto file will be nested inside the single wrapper outer class.
+
+
+
+ Gets whether the "java_outer_classname" field is set
+
+
+ Clears the value of the "java_outer_classname" field
+
+
+ Field number for the "java_multiple_files" field.
+
+
+
+ If enabled, then the Java code generator will generate a separate .java
+ file for each top-level message, enum, and service defined in the .proto
+ file. Thus, these types will *not* be nested inside the wrapper class
+ named by java_outer_classname. However, the wrapper class will still be
+ generated to contain the file's getDescriptor() method as well as any
+ top-level extensions defined in the file.
+
+
+
+ Gets whether the "java_multiple_files" field is set
+
+
+ Clears the value of the "java_multiple_files" field
+
+
+ Field number for the "java_generate_equals_and_hash" field.
+
+
+
+ This option does nothing.
+
+
+
+ Gets whether the "java_generate_equals_and_hash" field is set
+
+
+ Clears the value of the "java_generate_equals_and_hash" field
+
+
+ Field number for the "java_string_check_utf8" field.
+
+
+
+ If set true, then the Java2 code generator will generate code that
+ throws an exception whenever an attempt is made to assign a non-UTF-8
+ byte sequence to a string field.
+ Message reflection will do the same.
+ However, an extension field still accepts non-UTF-8 byte sequences.
+ This option has no effect on when used with the lite runtime.
+
+
+
+ Gets whether the "java_string_check_utf8" field is set
+
+
+ Clears the value of the "java_string_check_utf8" field
+
+
+ Field number for the "optimize_for" field.
+
+
+ Gets whether the "optimize_for" field is set
+
+
+ Clears the value of the "optimize_for" field
+
+
+ Field number for the "go_package" field.
+
+
+
+ Sets the Go package where structs generated from this .proto will be
+ placed. If omitted, the Go package will be derived from the following:
+ - The basename of the package import path, if provided.
+ - Otherwise, the package statement in the .proto file, if present.
+ - Otherwise, the basename of the .proto file, without extension.
+
+
+
+ Gets whether the "go_package" field is set
+
+
+ Clears the value of the "go_package" field
+
+
+ Field number for the "cc_generic_services" field.
+
+
+
+ Should generic services be generated in each language? "Generic" services
+ are not specific to any particular RPC system. They are generated by the
+ main code generators in each language (without additional plugins).
+ Generic services were the only kind of service generation supported by
+ early versions of google.protobuf.
+
+ Generic services are now considered deprecated in favor of using plugins
+ that generate code specific to your particular RPC system. Therefore,
+ these default to false. Old code which depends on generic services should
+ explicitly set them to true.
+
+
+
+ Gets whether the "cc_generic_services" field is set
+
+
+ Clears the value of the "cc_generic_services" field
+
+
+ Field number for the "java_generic_services" field.
+
+
+ Gets whether the "java_generic_services" field is set
+
+
+ Clears the value of the "java_generic_services" field
+
+
+ Field number for the "py_generic_services" field.
+
+
+ Gets whether the "py_generic_services" field is set
+
+
+ Clears the value of the "py_generic_services" field
+
+
+ Field number for the "php_generic_services" field.
+
+
+ Gets whether the "php_generic_services" field is set
+
+
+ Clears the value of the "php_generic_services" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this file deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for everything in the file, or it will be completely ignored; in the very
+ least, this is a formalization for deprecating files.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "cc_enable_arenas" field.
+
+
+
+ Enables the use of arenas for the proto messages in this file. This applies
+ only to generated classes for C++.
+
+
+
+ Gets whether the "cc_enable_arenas" field is set
+
+
+ Clears the value of the "cc_enable_arenas" field
+
+
+ Field number for the "objc_class_prefix" field.
+
+
+
+ Sets the objective c class prefix which is prepended to all objective c
+ generated classes from this .proto. There is no default.
+
+
+
+ Gets whether the "objc_class_prefix" field is set
+
+
+ Clears the value of the "objc_class_prefix" field
+
+
+ Field number for the "csharp_namespace" field.
+
+
+
+ Namespace for generated classes; defaults to the package.
+
+
+
+ Gets whether the "csharp_namespace" field is set
+
+
+ Clears the value of the "csharp_namespace" field
+
+
+ Field number for the "swift_prefix" field.
+
+
+
+ By default Swift generators will take the proto package and CamelCase it
+ replacing '.' with underscore and use that to prefix the types/symbols
+ defined. When this options is provided, they will use this value instead
+ to prefix the types/symbols defined.
+
+
+
+ Gets whether the "swift_prefix" field is set
+
+
+ Clears the value of the "swift_prefix" field
+
+
+ Field number for the "php_class_prefix" field.
+
+
+
+ Sets the php class prefix which is prepended to all php generated classes
+ from this .proto. Default is empty.
+
+
+
+ Gets whether the "php_class_prefix" field is set
+
+
+ Clears the value of the "php_class_prefix" field
+
+
+ Field number for the "php_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated classes. Default
+ is empty. When this option is empty, the package name will be used for
+ determining the namespace.
+
+
+
+ Gets whether the "php_namespace" field is set
+
+
+ Clears the value of the "php_namespace" field
+
+
+ Field number for the "php_metadata_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated metadata classes.
+ Default is empty. When this option is empty, the proto file name will be
+ used for determining the namespace.
+
+
+
+ Gets whether the "php_metadata_namespace" field is set
+
+
+ Clears the value of the "php_metadata_namespace" field
+
+
+ Field number for the "ruby_package" field.
+
+
+
+ Use this option to change the package of ruby generated classes. Default
+ is empty. When this option is not set, the package name will be used for
+ determining the ruby package.
+
+
+
+ Gets whether the "ruby_package" field is set
+
+
+ Clears the value of the "ruby_package" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here.
+ See the documentation for the "Options" section above.
+
+
+
+ Container for nested types declared in the FileOptions message type.
+
+
+
+ Generated classes can be optimized for speed or code size.
+
+
+
+
+ Generate complete code for parsing, serialization,
+
+
+
+
+ etc.
+
+
+
+
+ Generate code using MessageLite and the lite runtime.
+
+
+
+ Field number for the "message_set_wire_format" field.
+
+
+
+ Set true to use the old proto1 MessageSet wire format for extensions.
+ This is provided for backwards-compatibility with the MessageSet wire
+ format. You should not use this for any other reason: It's less
+ efficient, has fewer features, and is more complicated.
+
+ The message must be defined exactly as follows:
+ message Foo {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+ }
+ Note that the message cannot have any defined fields; MessageSets only
+ have extensions.
+
+ All extensions of your type must be singular messages; e.g. they cannot
+ be int32s, enums, or repeated messages.
+
+ Because this is an option, the above two restrictions are not enforced by
+ the protocol compiler.
+
+
+
+ Gets whether the "message_set_wire_format" field is set
+
+
+ Clears the value of the "message_set_wire_format" field
+
+
+ Field number for the "no_standard_descriptor_accessor" field.
+
+
+
+ Disables the generation of the standard "descriptor()" accessor, which can
+ conflict with a field of the same name. This is meant to make migration
+ from proto1 easier; new code should avoid fields named "descriptor".
+
+
+
+ Gets whether the "no_standard_descriptor_accessor" field is set
+
+
+ Clears the value of the "no_standard_descriptor_accessor" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this message deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the message, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating messages.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "map_entry" field.
+
+
+
+ Whether the message is an automatically generated map entry type for the
+ maps field.
+
+ For maps fields:
+ map<KeyType, ValueType> map_field = 1;
+ The parsed descriptor looks like:
+ message MapFieldEntry {
+ option map_entry = true;
+ optional KeyType key = 1;
+ optional ValueType value = 2;
+ }
+ repeated MapFieldEntry map_field = 1;
+
+ Implementations may choose not to generate the map_entry=true message, but
+ use a native map in the target language to hold the keys and values.
+ The reflection APIs in such implementations still need to work as
+ if the field is a repeated message field.
+
+ NOTE: Do not set the option in .proto files. Always use the maps syntax
+ instead. The option should only be implicitly set by the proto compiler
+ parser.
+
+
+
+ Gets whether the "map_entry" field is set
+
+
+ Clears the value of the "map_entry" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "ctype" field.
+
+
+
+ The ctype option instructs the C++ code generator to use a different
+ representation of the field than it normally would. See the specific
+ options below. This option is not yet implemented in the open source
+ release -- sorry, we'll try to include it in a future version!
+
+
+
+ Gets whether the "ctype" field is set
+
+
+ Clears the value of the "ctype" field
+
+
+ Field number for the "packed" field.
+
+
+
+ The packed option can be enabled for repeated primitive fields to enable
+ a more efficient representation on the wire. Rather than repeatedly
+ writing the tag and type for each element, the entire array is encoded as
+ a single length-delimited blob. In proto3, only explicit setting it to
+ false will avoid using packed encoding.
+
+
+
+ Gets whether the "packed" field is set
+
+
+ Clears the value of the "packed" field
+
+
+ Field number for the "jstype" field.
+
+
+
+ The jstype option determines the JavaScript type used for values of the
+ field. The option is permitted only for 64 bit integral and fixed types
+ (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
+ is represented as JavaScript string, which avoids loss of precision that
+ can happen when a large value is converted to a floating point JavaScript.
+ Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
+ use the JavaScript "number" type. The behavior of the default option
+ JS_NORMAL is implementation dependent.
+
+ This option is an enum to permit additional types to be added, e.g.
+ goog.math.Integer.
+
+
+
+ Gets whether the "jstype" field is set
+
+
+ Clears the value of the "jstype" field
+
+
+ Field number for the "lazy" field.
+
+
+
+ Should this field be parsed lazily? Lazy applies only to message-type
+ fields. It means that when the outer message is initially parsed, the
+ inner message's contents will not be parsed but instead stored in encoded
+ form. The inner message will actually be parsed when it is first accessed.
+
+ This is only a hint. Implementations are free to choose whether to use
+ eager or lazy parsing regardless of the value of this option. However,
+ setting this option true suggests that the protocol author believes that
+ using lazy parsing on this field is worth the additional bookkeeping
+ overhead typically needed to implement it.
+
+ This option does not affect the public interface of any generated code;
+ all method signatures remain the same. Furthermore, thread-safety of the
+ interface is not affected by this option; const methods remain safe to
+ call from multiple threads concurrently, while non-const methods continue
+ to require exclusive access.
+
+ Note that implementations may choose not to check required fields within
+ a lazy sub-message. That is, calling IsInitialized() on the outer message
+ may return true even if the inner message has missing required fields.
+ This is necessary because otherwise the inner message would have to be
+ parsed in order to perform the check, defeating the purpose of lazy
+ parsing. An implementation which chooses not to check required fields
+ must be consistent about it. That is, for any particular sub-message, the
+ implementation must either *always* check its required fields, or *never*
+ check its required fields, regardless of whether or not the message has
+ been parsed.
+
+ As of 2021, lazy does no correctness checks on the byte stream during
+ parsing. This may lead to crashes if and when an invalid byte stream is
+ finally parsed upon access.
+
+ TODO(b/211906113): Enable validation on lazy fields.
+
+
+
+ Gets whether the "lazy" field is set
+
+
+ Clears the value of the "lazy" field
+
+
+ Field number for the "unverified_lazy" field.
+
+
+
+ unverified_lazy does no correctness checks on the byte stream. This should
+ only be used where lazy with verification is prohibitive for performance
+ reasons.
+
+
+
+ Gets whether the "unverified_lazy" field is set
+
+
+ Clears the value of the "unverified_lazy" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this field deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for accessors, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating fields.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "weak" field.
+
+
+
+ For Google-internal migration only. Do not use.
+
+
+
+ Gets whether the "weak" field is set
+
+
+ Clears the value of the "weak" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the FieldOptions message type.
+
+
+
+ Default mode.
+
+
+
+
+ Use the default type.
+
+
+
+
+ Use JavaScript strings.
+
+
+
+
+ Use JavaScript numbers.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "allow_alias" field.
+
+
+
+ Set this option to true to allow mapping different tag names to the same
+ value.
+
+
+
+ Gets whether the "allow_alias" field is set
+
+
+ Clears the value of the "allow_alias" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating enums.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum value deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum value, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating enum values.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this service deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the service, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating services.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this method deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the method, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating methods.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "idempotency_level" field.
+
+
+ Gets whether the "idempotency_level" field is set
+
+
+ Clears the value of the "idempotency_level" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the MethodOptions message type.
+
+
+
+ Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
+ or neither? HTTP based RPC implementation may choose GET verb for safe
+ methods, and PUT verb for idempotent methods instead of the default POST.
+
+
+
+
+ implies idempotent
+
+
+
+
+ idempotent, but may have side effects
+
+
+
+
+ A message representing a option the parser does not recognize. This only
+ appears in options protos created by the compiler::Parser class.
+ DescriptorPool resolves these when building Descriptor objects. Therefore,
+ options protos in descriptor objects (e.g. returned by Descriptor::options(),
+ or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
+ in them.
+
+
+
+ Field number for the "name" field.
+
+
+ Field number for the "identifier_value" field.
+
+
+
+ The value of the uninterpreted option, in whatever type the tokenizer
+ identified it as during parsing. Exactly one of these should be set.
+
+
+
+ Gets whether the "identifier_value" field is set
+
+
+ Clears the value of the "identifier_value" field
+
+
+ Field number for the "positive_int_value" field.
+
+
+ Gets whether the "positive_int_value" field is set
+
+
+ Clears the value of the "positive_int_value" field
+
+
+ Field number for the "negative_int_value" field.
+
+
+ Gets whether the "negative_int_value" field is set
+
+
+ Clears the value of the "negative_int_value" field
+
+
+ Field number for the "double_value" field.
+
+
+ Gets whether the "double_value" field is set
+
+
+ Clears the value of the "double_value" field
+
+
+ Field number for the "string_value" field.
+
+
+ Gets whether the "string_value" field is set
+
+
+ Clears the value of the "string_value" field
+
+
+ Field number for the "aggregate_value" field.
+
+
+ Gets whether the "aggregate_value" field is set
+
+
+ Clears the value of the "aggregate_value" field
+
+
+ Container for nested types declared in the UninterpretedOption message type.
+
+
+
+ The name of the uninterpreted option. Each string represents a segment in
+ a dot-separated name. is_extension is true iff a segment represents an
+ extension (denoted with parentheses in options specs in .proto files).
+ E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
+ "foo.(bar.baz).moo".
+
+
+
+ Field number for the "name_part" field.
+
+
+ Gets whether the "name_part" field is set
+
+
+ Clears the value of the "name_part" field
+
+
+ Field number for the "is_extension" field.
+
+
+ Gets whether the "is_extension" field is set
+
+
+ Clears the value of the "is_extension" field
+
+
+
+ Encapsulates information about the original source file from which a
+ FileDescriptorProto was generated.
+
+
+
+ Field number for the "location" field.
+
+
+
+ A Location identifies a piece of source code in a .proto file which
+ corresponds to a particular definition. This information is intended
+ to be useful to IDEs, code indexers, documentation generators, and similar
+ tools.
+
+ For example, say we have a file like:
+ message Foo {
+ optional string foo = 1;
+ }
+ Let's look at just the field definition:
+ optional string foo = 1;
+ ^ ^^ ^^ ^ ^^^
+ a bc de f ghi
+ We have the following locations:
+ span path represents
+ [a,i) [ 4, 0, 2, 0 ] The whole field definition.
+ [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
+ [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
+ [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
+ [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
+
+ Notes:
+ - A location may refer to a repeated field itself (i.e. not to any
+ particular index within it). This is used whenever a set of elements are
+ logically enclosed in a single code segment. For example, an entire
+ extend block (possibly containing multiple extension definitions) will
+ have an outer location whose path refers to the "extensions" repeated
+ field without an index.
+ - Multiple locations may have the same path. This happens when a single
+ logical declaration is spread out across multiple places. The most
+ obvious example is the "extend" block again -- there may be multiple
+ extend blocks in the same scope, each of which will have the same path.
+ - A location's span is not always a subset of its parent's span. For
+ example, the "extendee" of an extension declaration appears at the
+ beginning of the "extend" block and is shared by all extensions within
+ the block.
+ - Just because a location's span is a subset of some other location's span
+ does not mean that it is a descendant. For example, a "group" defines
+ both a type and a field in a single declaration. Thus, the locations
+ corresponding to the type and field and their components will overlap.
+ - Code which tries to interpret locations should probably be designed to
+ ignore those that it doesn't understand, as more types of locations could
+ be recorded in the future.
+
+
+
+ Container for nested types declared in the SourceCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies which part of the FileDescriptorProto was defined at this
+ location.
+
+ Each element is a field number or an index. They form a path from
+ the root FileDescriptorProto to the place where the definition occurs.
+ For example, this path:
+ [ 4, 3, 2, 7, 1 ]
+ refers to:
+ file.message_type(3) // 4, 3
+ .field(7) // 2, 7
+ .name() // 1
+ This is because FileDescriptorProto.message_type has field number 4:
+ repeated DescriptorProto message_type = 4;
+ and DescriptorProto.field has field number 2:
+ repeated FieldDescriptorProto field = 2;
+ and FieldDescriptorProto.name has field number 1:
+ optional string name = 1;
+
+ Thus, the above path gives the location of a field name. If we removed
+ the last element:
+ [ 4, 3, 2, 7 ]
+ this path refers to the whole field declaration (from the beginning
+ of the label to the terminating semicolon).
+
+
+
+ Field number for the "span" field.
+
+
+
+ Always has exactly three or four elements: start line, start column,
+ end line (optional, otherwise assumed same as start line), end column.
+ These are packed into a single field for efficiency. Note that line
+ and column numbers are zero-based -- typically you will want to add
+ 1 to each before displaying to a user.
+
+
+
+ Field number for the "leading_comments" field.
+
+
+
+ If this SourceCodeInfo represents a complete declaration, these are any
+ comments appearing before and after the declaration which appear to be
+ attached to the declaration.
+
+ A series of line comments appearing on consecutive lines, with no other
+ tokens appearing on those lines, will be treated as a single comment.
+
+ leading_detached_comments will keep paragraphs of comments that appear
+ before (but not connected to) the current element. Each paragraph,
+ separated by empty lines, will be one comment element in the repeated
+ field.
+
+ Only the comment content is provided; comment markers (e.g. //) are
+ stripped out. For block comments, leading whitespace and an asterisk
+ will be stripped from the beginning of each line other than the first.
+ Newlines are included in the output.
+
+ Examples:
+
+ optional int32 foo = 1; // Comment attached to foo.
+ // Comment attached to bar.
+ optional int32 bar = 2;
+
+ optional string baz = 3;
+ // Comment attached to baz.
+ // Another line attached to baz.
+
+ // Comment attached to moo.
+ //
+ // Another line attached to moo.
+ optional double moo = 4;
+
+ // Detached comment for corge. This is not leading or trailing comments
+ // to moo or corge because there are blank lines separating it from
+ // both.
+
+ // Detached comment for corge paragraph 2.
+
+ optional string corge = 5;
+ /* Block comment attached
+ * to corge. Leading asterisks
+ * will be removed. */
+ /* Block comment attached to
+ * grault. */
+ optional int32 grault = 6;
+
+ // ignored detached comments.
+
+
+
+ Gets whether the "leading_comments" field is set
+
+
+ Clears the value of the "leading_comments" field
+
+
+ Field number for the "trailing_comments" field.
+
+
+ Gets whether the "trailing_comments" field is set
+
+
+ Clears the value of the "trailing_comments" field
+
+
+ Field number for the "leading_detached_comments" field.
+
+
+
+ Describes the relationship between generated code and its original source
+ file. A GeneratedCodeInfo message is associated with only one generated
+ source file, but may contain references to different source .proto files.
+
+
+
+ Field number for the "annotation" field.
+
+
+
+ An Annotation connects some span of text in generated code to an element
+ of its generating .proto file.
+
+
+
+ Container for nested types declared in the GeneratedCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies the element in the original source .proto file. This field
+ is formatted the same as SourceCodeInfo.Location.path.
+
+
+
+ Field number for the "source_file" field.
+
+
+
+ Identifies the filesystem path to the original source .proto.
+
+
+
+ Gets whether the "source_file" field is set
+
+
+ Clears the value of the "source_file" field
+
+
+ Field number for the "begin" field.
+
+
+
+ Identifies the starting offset in bytes in the generated code
+ that relates to the identified object.
+
+
+
+ Gets whether the "begin" field is set
+
+
+ Clears the value of the "begin" field
+
+
+ Field number for the "end" field.
+
+
+
+ Identifies the ending offset in bytes in the generated code that
+ relates to the identified offset. The end offset should be one past
+ the last relevant byte (so the length of the text = end - begin).
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Base class for nearly all descriptors, providing common functionality.
+
+
+
+
+ The index of this descriptor within its parent descriptor.
+
+
+ This returns the index of this descriptor within its parent, for
+ this descriptor's type. (There can be duplicate values for different
+ types, e.g. one enum type with index 0 and one message type with index 0.)
+
+
+
+
+ Returns the name of the entity (field, message etc) being described.
+
+
+
+
+ The fully qualified name of the descriptor's target.
+
+
+
+
+ The file this descriptor was declared in.
+
+
+
+
+ The declaration information about the descriptor, or null if no declaration information
+ is available for this descriptor.
+
+
+ This information is typically only available for dynamically loaded descriptors,
+ for example within a protoc plugin where the full descriptors, including source info,
+ are passed to the code by protoc.
+
+
+
+
+ Retrieves the list of nested descriptors corresponding to the given field number, if any.
+ If the field is unknown or not a nested descriptor list, return null to terminate the search.
+ The default implementation returns null.
+
+
+
+
+ Provides additional information about the declaration of a descriptor,
+ such as source location and comments.
+
+
+
+
+ The descriptor this declaration relates to.
+
+
+
+
+ The start line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The start column of the declaration within the source file. This value is 1-based.
+
+
+
+
+ // The end line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The end column of the declaration within the source file. This value is 1-based, and
+ exclusive. (The final character of the declaration is on the column before this value.)
+
+
+
+
+ Comments appearing before the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing after the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing before the declaration, but separated from it by blank
+ lines. Each string represents a newline-separated paragraph of comments.
+ Leading whitespace and the comment marker ("//") are removed from each line.
+ The list is never null, but may be empty. Likewise each element is never null, but may be empty.
+
+
+
+
+ Contains lookup tables containing all the descriptors defined in a particular file.
+
+
+
+
+ Finds a symbol of the given name within the pool.
+
+ The type of symbol to look for
+ Fully-qualified name to look up
+ The symbol with the given name and type,
+ or null if the symbol doesn't exist or has the wrong type
+
+
+
+ Adds a package to the symbol tables. If a package by the same name
+ already exists, that is fine, but if some other kind of symbol
+ exists under the same name, an exception is thrown. If the package
+ has multiple components, this also adds the parent package(s).
+
+
+
+
+ Adds a symbol to the symbol table.
+
+ The symbol already existed
+ in the symbol table.
+
+
+
+ Verifies that the descriptor's name is valid (i.e. it contains
+ only letters, digits and underscores, and does not start with a digit).
+
+
+
+
+
+ Returns the field with the given number in the given descriptor,
+ or null if it can't be found.
+
+
+
+
+ Adds a field to the fieldsByNumber table.
+
+ A field with the same
+ containing type and number already exists.
+
+
+
+ Adds an enum value to the enumValuesByNumber table. If an enum value
+ with the same type and number already exists, this method does nothing.
+ (This is allowed; the first value defined with the number takes precedence.)
+
+
+
+
+ Looks up a descriptor by name, relative to some other descriptor.
+ The name may be fully-qualified (with a leading '.'), partially-qualified,
+ or unqualified. C++-like name lookup semantics are used to search for the
+ matching descriptor.
+
+
+ This isn't heavily optimized, but it's only used during cross linking anyway.
+ If it starts being used more widely, we should look at performance more carefully.
+
+
+
+
+ Internal class containing utility methods when working with descriptors.
+
+
+
+
+ Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
+ arrays.
+
+
+
+
+ Converts the given array into a read-only list, applying the specified conversion to
+ each input element.
+
+
+
+
+ Thrown when building descriptors fails because the source DescriptorProtos
+ are not valid.
+
+
+
+
+ The full name of the descriptor where the error occurred.
+
+
+
+
+ A human-readable description of the error. (The Message property
+ is made up of the descriptor's name and this description.)
+
+
+
+
+ Descriptor for an enum type in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ The CLR type for this enum. For generated code, this will be a CLR enum type.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ An unmodifiable list of defined value descriptors for this enum.
+
+
+
+
+ Finds an enum value by number. If multiple enum values have the
+ same number, this returns the first defined value with that number.
+ If there is no value for the given number, this returns null.
+
+
+
+
+ Finds an enum value by name.
+
+ The unqualified name of the value (e.g. "FOO").
+ The value's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this enum.
+
+
+
+
+ The EnumOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum option for this descriptor
+
+
+
+
+ Gets a repeated value enum option for this descriptor
+
+
+
+
+ Descriptor for a single enum value within an enum in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum value.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum value descriptor.
+
+
+
+ Returns the name of the enum value described by this object.
+
+
+
+
+ Returns the number associated with this enum value.
+
+
+
+
+ Returns the enum descriptor that this value is part of.
+
+
+
+
+ The (possibly empty) set of custom options for this enum value.
+
+
+
+
+ The EnumValueOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum value option for this descriptor
+
+
+
+
+ Gets a repeated value enum value option for this descriptor
+
+
+
+
+ A collection to simplify retrieving the descriptors of extensions in a descriptor for a message
+
+
+
+
+ Returns a readonly list of all the extensions defined in this type in
+ the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in ascending field order
+
+
+
+
+ Base class for field accessors.
+
+
+
+
+ Descriptor for a field or extension within a message in a .proto file.
+
+
+
+
+ Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension.
+
+
+
+
+ Returns the oneof containing this field, or null if it is not part of a oneof.
+
+
+
+
+ Returns the oneof containing this field if it's a "real" oneof, or null if either this
+ field is not part of a oneof, or the oneof is synthetic.
+
+
+
+
+ The effective JSON name for this field. This is usually the lower-camel-cased form of the field name,
+ but can be overridden using the json_name option in the .proto file.
+
+
+
+
+ The name of the property in the ContainingType.ClrType class.
+
+
+
+
+ Indicates whether this field supports presence, either implicitly (e.g. due to it being a message
+ type field) or explicitly via Has/Clear members. If this returns true, it is safe to call
+ and
+ on this field's accessor with a suitable message.
+
+
+
+
+ Returns a clone of the underlying describing this field.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this field descriptor.
+
+
+
+ An extension identifier for this field, or null if this field isn't an extension.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns the accessor for this field.
+
+
+
+ While a describes the field, it does not provide
+ any way of obtaining or changing the value of the field within a specific message;
+ that is the responsibility of the accessor.
+
+
+ In descriptors for generated code, the value returned by this property will be non-null for all
+ regular fields. However, if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, and the value of the map field itself is represented by a dictionary in the
+ reflection API. There are never instances of those "hidden" messages, so no accessor is provided
+ and this property will return null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+
+
+ Maps a field type as included in the .proto file to a FieldType.
+
+
+
+
+ Returns true if this field is a repeated field; false otherwise.
+
+
+
+
+ Returns true if this field is a required field; false otherwise.
+
+
+
+
+ Returns true if this field is a map field; false otherwise.
+
+
+
+
+ Returns true if this field is a packed, repeated field; false otherwise.
+
+
+
+
+ Returns true if this field extends another message type; false otherwise.
+
+
+
+
+ Returns the type of the field.
+
+
+
+
+ Returns the field number declared in the proto file.
+
+
+
+
+ Compares this descriptor with another one, ordering in "canonical" order
+ which simply means ascending order by field number.
+ must be a field of the same type, i.e. the of
+ both fields must be the same.
+
+
+
+
+ For enum fields, returns the field's type.
+
+
+
+
+ For embedded message and group fields, returns the field's type.
+
+
+
+
+ For extension fields, returns the extended type
+
+
+
+
+ The (possibly empty) set of custom options for this field.
+
+
+
+
+ The FieldOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value field option for this descriptor
+
+
+
+
+ Gets a repeated value field option for this descriptor
+
+
+
+
+ Look up and cross-link all field types etc.
+
+
+
+
+ Enumeration of all the possible field types.
+
+
+
+
+ The double field type.
+
+
+
+
+ The float field type.
+
+
+
+
+ The int64 field type.
+
+
+
+
+ The uint64 field type.
+
+
+
+
+ The int32 field type.
+
+
+
+
+ The fixed64 field type.
+
+
+
+
+ The fixed32 field type.
+
+
+
+
+ The bool field type.
+
+
+
+
+ The string field type.
+
+
+
+
+ The field type used for groups.
+
+
+
+
+ The field type used for message fields.
+
+
+
+
+ The bytes field type.
+
+
+
+
+ The uint32 field type.
+
+
+
+
+ The sfixed32 field type.
+
+
+
+
+ The sfixed64 field type.
+
+
+
+
+ The sint32 field type.
+
+
+
+
+ The sint64 field type.
+
+
+
+
+ The field type used for enum fields.
+
+
+
+
+ The syntax of a .proto file
+
+
+
+
+ Proto2 syntax
+
+
+
+
+ Proto3 syntax
+
+
+
+
+ An unknown declared syntax
+
+
+
+
+ Describes a .proto file, including everything defined within.
+ IDescriptor is implemented such that the File property returns this descriptor,
+ and the FullName is the same as the Name.
+
+
+
+
+ Computes the full name of a descriptor within this file, with an optional parent message.
+
+
+
+
+ Extracts public dependencies from direct dependencies. This is a static method despite its
+ first parameter, as the value we're in the middle of constructing is only used for exceptions.
+
+
+
+
+ The descriptor in its protocol message representation.
+
+
+
+
+ Returns a clone of the underlying describing this file.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this file descriptor.
+
+
+
+ The syntax of the file
+
+
+
+
+ The file name.
+
+
+
+
+ The package as declared in the .proto file. This may or may not
+ be equivalent to the .NET namespace of the generated classes.
+
+
+
+
+ Unmodifiable list of top-level message types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level enum types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level services declared in this file.
+
+
+
+
+ Unmodifiable list of top-level extensions declared in this file.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if this descriptor was generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ Unmodifiable list of this file's dependencies (imports).
+
+
+
+
+ Unmodifiable list of this file's public dependencies (public imports).
+
+
+
+
+ The original serialized binary form of this descriptor.
+
+
+
+
+ Implementation of IDescriptor.FullName - just returns the same as Name.
+
+
+
+
+ Implementation of IDescriptor.File - just returns this descriptor.
+
+
+
+
+ Pool containing symbol descriptors.
+
+
+
+
+ Finds a type (message, enum, service or extension) in the file by name. Does not find nested types.
+
+ The unqualified type name to look for.
+ The type of descriptor to look for
+ The type's descriptor, or null if not found.
+
+
+
+ Builds a FileDescriptor from its protocol buffer representation.
+
+ The original serialized descriptor data.
+ We have only limited proto2 support, so serializing FileDescriptorProto
+ would not necessarily give us this.
+ The protocol message form of the FileDescriptor.
+ FileDescriptors corresponding to all of the
+ file's dependencies, in the exact order listed in the .proto file. May be null,
+ in which case it is treated as an empty array.
+ Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).
+ Details about generated code, for the purposes of reflection.
+ If is not
+ a valid descriptor. This can occur for a number of reasons, such as a field
+ having an undefined type or because two messages were defined with the same name.
+
+
+
+ Creates a descriptor for generated code.
+
+
+ This method is only designed to be used by the results of generating code with protoc,
+ which creates the appropriate dependencies etc. It has to be public because the generated
+ code is "external", but should not be called directly by end users.
+
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The extension registry to use when parsing, or null if no extensions are required.
+ The file descriptors corresponding to .
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The file descriptors corresponding to .
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns the file descriptor for descriptor.proto.
+
+
+ This is used for protos which take a direct dependency on descriptor.proto, typically for
+ annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf
+ runtime for reflection purposes. The messages are internal to the runtime as they would require
+ proto2 semantics for full support, but the file descriptor is available via this property. The
+ C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto.
+
+
+ The file descriptor for descriptor.proto.
+
+
+
+
+ The (possibly empty) set of custom options for this file.
+
+
+
+
+ The FileOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value file option for this descriptor
+
+
+
+
+ Gets a repeated value file option for this descriptor
+
+
+
+
+ Performs initialization for the given generic type argument.
+
+
+ This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated)
+ to make calls into the reflection machinery of this library to express an intention to use that type
+ reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers
+ attempting to determine which generic type arguments need to be handled will spot the code path and act
+ accordingly.
+
+ The type to force initialization for.
+
+
+
+ Extra information provided by generated code when initializing a message or file descriptor.
+ These are constructed as required, and are not long-lived. Hand-written code should
+ never need to use this type.
+
+
+
+
+ Irrelevant for file descriptors; the CLR type for the message for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the parser for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the CLR property names (in message descriptor field order)
+ for fields in the message for message descriptors.
+
+
+
+
+ The extensions defined within this file/message descriptor
+
+
+
+
+ Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order)
+ for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo",
+ there will be a "FooCase" property and a "ClearFoo" method.
+
+
+
+
+ The reflection information for types within this file/message descriptor. Elements may be null
+ if there is no corresponding generated type, e.g. for map entry types.
+
+
+
+
+ The CLR types for enums within this file/message descriptor.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums.
+
+
+
+
+ Interface implemented by all descriptor types.
+
+
+
+
+ Returns the name of the entity (message, field etc) being described.
+
+
+
+
+ Returns the fully-qualified name of the entity being described.
+
+
+
+
+ Returns the descriptor for the .proto file that this entity is part of.
+
+
+
+
+ Allows fields to be reflectively accessed.
+
+
+
+
+ Returns the descriptor associated with this field.
+
+
+
+
+ Clears the field in the specified message. (For repeated fields,
+ this clears the list.)
+
+
+
+
+ Fetches the field value. For repeated values, this will be an
+ implementation. For map values, this will be an
+ implementation.
+
+
+
+
+ Indicates whether the field in the specified message is set.
+ For proto3 fields that aren't explicitly optional, this throws an
+
+
+
+
+ Mutator for single "simple" fields only.
+
+
+ Repeated fields are mutated by fetching the value and manipulating it as a list.
+ Map fields are mutated by fetching the value and manipulating it as a dictionary.
+
+ The field is not a "simple" field.
+
+
+
+ Accessor for map fields.
+
+
+
+
+ Describes a message type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this message.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this message descriptor.
+
+
+
+ The CLR type used to represent message instances from this descriptor.
+
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the type returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ A parser for this message type.
+
+
+
+ As is not generic, this cannot be statically
+ typed to the relevant type, but it should produce objects of a type compatible with .
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. No message parser object is created for
+ such messages, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the parser returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ Returns whether this message is one of the "well known types" which may have runtime/protoc support.
+
+
+
+
+ Returns whether this message is one of the "wrapper types" used for fields which represent primitive values
+ with the addition of presence.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ A collection of fields, which can be retrieved by name or field number.
+
+
+
+
+ An unmodifiable list of extensions defined in this message's scope.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if they are declared in a file generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ An unmodifiable list of this message type's nested types.
+
+
+
+
+ An unmodifiable list of this message type's enum types.
+
+
+
+
+ An unmodifiable list of the "oneof" field collections in this message type.
+ All "real" oneofs (where returns false)
+ come before synthetic ones.
+
+
+
+
+ The number of real "oneof" descriptors in this message type. Every element in
+ with an index less than this will have a property value
+ of false; every element with an index greater than or equal to this will have a
+ property value of true.
+
+
+
+
+ Finds a field by field name.
+
+ The unqualified name of the field (e.g. "foo").
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a field by field number.
+
+ The field number within this message type.
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a nested descriptor by name. The is valid for fields, nested
+ message types, oneofs and enums.
+
+ The unqualified name of the descriptor, e.g. "Foo"
+ The descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this message.
+
+
+
+
+ The MessageOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value message option for this descriptor
+
+
+
+
+ Gets a repeated value message option for this descriptor
+
+
+
+
+ Looks up and cross-links all fields and nested types.
+
+
+
+
+ A collection to simplify retrieving the field accessor for a particular field.
+
+
+
+
+ Returns the fields in the message as an immutable list, in the order in which they
+ are declared in the source .proto file.
+
+
+
+
+ Returns the fields in the message as an immutable list, in ascending field number
+ order. Field numbers need not be contiguous, so there is no direct mapping from the
+ index in the list to the field number; to retrieve a field by field number, it is better
+ to use the indexer.
+
+
+
+
+ Returns a read-only dictionary mapping the field names in this message as they're available
+ in the JSON representation to the field descriptors. For example, a field foo_bar
+ in the message would result two entries, one with a key fooBar and one with a key
+ foo_bar, both referring to the same field.
+
+
+
+
+ Retrieves the descriptor for the field with the given number.
+
+ Number of the field to retrieve the descriptor for
+ The accessor for the given field
+ The message descriptor does not contain a field
+ with the given number
+
+
+
+ Retrieves the descriptor for the field with the given name.
+
+ Name of the field to retrieve the descriptor for
+ The descriptor for the given field
+ The message descriptor does not contain a field
+ with the given name
+
+
+
+ Describes a single method in a service.
+
+
+
+
+ The service this method belongs to.
+
+
+
+
+ The method's input type.
+
+
+
+
+ The method's input type.
+
+
+
+
+ Indicates if client streams multiple requests.
+
+
+
+
+ Indicates if server streams multiple responses.
+
+
+
+
+ The (possibly empty) set of custom options for this method.
+
+
+
+
+ The MethodOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value method option for this descriptor
+
+
+
+
+ Gets a repeated value method option for this descriptor
+
+
+
+
+ Returns a clone of the underlying describing this method.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this method descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Reflection access for a oneof, allowing clear and "get case" actions.
+
+
+
+
+ Gets the descriptor for this oneof.
+
+
+ The descriptor of the oneof.
+
+
+
+
+ Clears the oneof in the specified message.
+
+
+
+
+ Indicates which field in the oneof is set for specified message
+
+
+
+
+ Describes a "oneof" field collection in a message type: a set of
+ fields of which at most one can be set in any particular message.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this oneof.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this oneof descriptor.
+
+
+
+ Gets the message type containing this oneof.
+
+
+ The message type containing this oneof.
+
+
+
+
+ Gets the fields within this oneof, in declaration order.
+
+
+ The fields within this oneof, in declaration order.
+
+
+
+
+ Returns true if this oneof is a synthetic oneof containing a proto3 optional field;
+ false otherwise.
+
+
+
+
+ Gets an accessor for reflective access to the values associated with the oneof
+ in a particular message.
+
+
+
+ In descriptors for generated code, the value returned by this property will always be non-null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+ The accessor used for reflective access.
+
+
+
+
+ The (possibly empty) set of custom options for this oneof.
+
+
+
+
+ The OneofOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value oneof option for this descriptor
+
+
+
+
+ Gets a repeated value oneof option for this descriptor
+
+
+
+
+ Specifies the original name (in the .proto file) of a named element,
+ such as an enum value.
+
+
+
+
+ The name of the element in the .proto file.
+
+
+
+
+ If the name is preferred in the .proto file.
+
+
+
+
+ Constructs a new attribute instance for the given name.
+
+ The name of the element in the .proto file.
+
+
+
+ Represents a package in the symbol table. We use PackageDescriptors
+ just as placeholders so that someone cannot define, say, a message type
+ that has the same name as an existing package.
+
+
+
+
+ The methods in this class are somewhat evil, and should not be tampered with lightly.
+ Basically they allow the creation of relatively weakly typed delegates from MethodInfos
+ which are more strongly typed. They do this by creating an appropriate strongly typed
+ delegate from the MethodInfo, and then calling that within an anonymous method.
+ Mind-bending stuff (at least to your humble narrator) but the resulting delegates are
+ very fast compared with calling Invoke later on.
+
+
+
+
+ Empty Type[] used when calling GetProperty to force property instead of indexer fetching.
+
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to object.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to the specified type. The method is expected
+ to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that
+ means we need some extra work to perform conversions.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ type that declares the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+
+
+
+ Creates a reflection helper for the given type arguments. Currently these are created on demand
+ rather than cached; this will be "busy" when initially loading a message's descriptor, but after that
+ they can be garbage collected. We could cache them by type if that proves to be important, but creating
+ an object is pretty cheap.
+
+
+
+
+ Accessor for repeated fields.
+
+
+
+
+ Describes a service type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this service.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this service descriptor.
+
+
+
+ An unmodifiable list of methods in this service.
+
+
+
+
+ Finds a method by name.
+
+ The unqualified name of the method (e.g. "Foo").
+ The method's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this service.
+
+
+
+
+ The ServiceOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value service option for this descriptor
+
+
+
+
+ Gets a repeated value service option for this descriptor
+
+
+
+
+ Accessor for single fields.
+
+
+
+
+ An immutable registry of types which can be looked up by their full name.
+
+
+
+
+ An empty type registry, containing no types.
+
+
+
+
+ Attempts to find a message descriptor by its full name.
+
+ The full name of the message, which is the dot-separated
+ combination of package, containing messages and message name
+ The message descriptor corresponding to or null
+ if there is no such message descriptor.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ All message types within all the specified files are added to the registry, and
+ the dependencies of the specified files are also added, recursively.
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ The specified message descriptors are only used to identify their file descriptors; the returned registry
+ contains all the types within the file descriptors which contain the specified message descriptors (and
+ the dependencies of those files), not just the specified messages.
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls.
+
+
+
+
+ Abstraction for reading from a stream / read only sequence.
+ Parsing from the buffer is a loop of reading from current buffer / refreshing the buffer once done.
+
+
+
+
+ Initialize an instance with a coded input stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a read only sequence.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Represents a single field in an UnknownFieldSet.
+
+ An UnknownField consists of four lists of values. The lists correspond
+ to the four "wire types" used in the protocol buffer binary format.
+ Normally, only one of the four lists will contain any values, since it
+ is impossible to define a valid message type that declares two different
+ types for the same field number. However, the code is designed to allow
+ for the case where the same unknown field number is encountered using
+ multiple different wire types.
+
+
+
+
+
+ Creates a new UnknownField.
+
+
+
+
+ Checks if two unknown field are equal.
+
+
+
+
+ Get the hash code of the unknown field.
+
+
+
+
+ Serializes the field, including the field number, and writes it to
+
+
+ The unknown field number.
+ The write context to write to.
+
+
+
+ Computes the number of bytes required to encode this field, including field
+ number.
+
+
+
+
+ Merge the values in into this field. For each list
+ of values, 's values are append to the ones in this
+ field.
+
+
+
+
+ Returns a new list containing all of the given specified values from
+ both the and lists.
+ If is null and is null or empty,
+ null is returned. Otherwise, either a new list is created (if
+ is null) or the elements of are added to .
+
+
+
+
+ Adds a varint value.
+
+
+
+
+ Adds a fixed32 value.
+
+
+
+
+ Adds a fixed64 value.
+
+
+
+
+ Adds a length-delimited value.
+
+
+
+
+ Adds to the , creating
+ a new list if is null. The list is returned - either
+ the original reference or the new list.
+
+
+
+
+ Used to keep track of fields which were seen when parsing a protocol message
+ but whose field numbers or types are unrecognized. This most frequently
+ occurs when new fields are added to a message type and then messages containing
+ those fields are read by old software that was built before the new types were
+ added.
+
+ Most users will never need to use this class directly.
+
+
+
+
+ Creates a new UnknownFieldSet.
+
+
+
+
+ Checks whether or not the given field number is present in the set.
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Gets the number of bytes required to encode this set.
+
+
+
+
+ Checks if two unknown field sets are equal.
+
+
+
+
+ Gets the unknown field set's hash code.
+
+
+
+
+ Adds a field to the set. If a field with the same number already exists, it
+ is replaced.
+
+
+
+
+ Parse a single field from and merge it
+ into this set.
+
+ The parse context from which to read the field
+ false if the tag is an "end group" tag, true otherwise
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The coded input stream containing the field
+ The merged UnknownFieldSet
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The parse context from which to read the field
+ The merged UnknownFieldSet
+
+
+
+ Merges the fields from into this set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Created a new UnknownFieldSet to if
+ needed and merges the fields from into the first set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Adds a field to the unknown field set. If a field with the same
+ number already exists, the two are merged.
+
+
+
+
+ Clone an unknown field set from .
+
+
+
+
+ Provides a number of unsafe byte operations to be used by advanced applications with high performance
+ requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose
+ the backing buffer of a to the application.
+
+
+
+ The methods in this class should only be called if it is guaranteed that the buffer backing the
+ will never change! Mutation of a can lead to unexpected
+ and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution!
+
+
+ This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In
+ particular, if the bytes value changes out from under a Protocol Buffer:
+
+
+ -
+ serialization may throw
+
+ -
+ serialization may succeed but the wrong bytes may be written out
+
+ -
+ objects that are normally immutable (such as ByteString) are no longer immutable
+
+ -
+ hashCode may be incorrect
+
+
+
+
+
+
+ Constructs a new from the given bytes. The bytes are not copied,
+ and must not be modified while the is in use.
+ This API is experimental and subject to change.
+
+
+
+ Holder for reflection information generated from google/protobuf/any.proto
+
+
+ File descriptor for google/protobuf/any.proto
+
+
+
+ `Any` contains an arbitrary serialized protocol buffer message along with a
+ URL that describes the type of the serialized message.
+
+ Protobuf library provides support to pack/unpack Any values in the form
+ of utility functions or additional generated methods of the Any type.
+
+ Example 1: Pack and unpack a message in C++.
+
+ Foo foo = ...;
+ Any any;
+ any.PackFrom(foo);
+ ...
+ if (any.UnpackTo(&foo)) {
+ ...
+ }
+
+ Example 2: Pack and unpack a message in Java.
+
+ Foo foo = ...;
+ Any any = Any.pack(foo);
+ ...
+ if (any.is(Foo.class)) {
+ foo = any.unpack(Foo.class);
+ }
+
+ Example 3: Pack and unpack a message in Python.
+
+ foo = Foo(...)
+ any = Any()
+ any.Pack(foo)
+ ...
+ if any.Is(Foo.DESCRIPTOR):
+ any.Unpack(foo)
+ ...
+
+ Example 4: Pack and unpack a message in Go
+
+ foo := &pb.Foo{...}
+ any, err := anypb.New(foo)
+ if err != nil {
+ ...
+ }
+ ...
+ foo := &pb.Foo{}
+ if err := any.UnmarshalTo(foo); err != nil {
+ ...
+ }
+
+ The pack methods provided by protobuf library will by default use
+ 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ methods only use the fully qualified type name after the last '/'
+ in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ name "y.z".
+
+ JSON
+
+ The JSON representation of an `Any` value uses the regular
+ representation of the deserialized, embedded message, with an
+ additional field `@type` which contains the type URL. Example:
+
+ package google.profile;
+ message Person {
+ string first_name = 1;
+ string last_name = 2;
+ }
+
+ {
+ "@type": "type.googleapis.com/google.profile.Person",
+ "firstName": <string>,
+ "lastName": <string>
+ }
+
+ If the embedded message type is well-known and has a custom JSON
+ representation, that representation will be embedded adding a field
+ `value` which holds the custom JSON in addition to the `@type`
+ field. Example (for message [google.protobuf.Duration][]):
+
+ {
+ "@type": "type.googleapis.com/google.protobuf.Duration",
+ "value": "1.212s"
+ }
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ A URL/resource name that uniquely identifies the type of the serialized
+ protocol buffer message. This string must contain at least
+ one "/" character. The last segment of the URL's path must represent
+ the fully qualified name of the type (as in
+ `path/google.protobuf.Duration`). The name should be in a canonical form
+ (e.g., leading "." is not accepted).
+
+ In practice, teams usually precompile into the binary all types that they
+ expect it to use in the context of Any. However, for URLs which use the
+ scheme `http`, `https`, or no scheme, one can optionally set up a type
+ server that maps type URLs to message definitions as follows:
+
+ * If no scheme is provided, `https` is assumed.
+ * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ value in binary format, or produce an error.
+ * Applications are allowed to cache lookup results based on the
+ URL, or have them precompiled into a binary to avoid any
+ lookup. Therefore, binary compatibility needs to be preserved
+ on changes to types. (Use versioned type names to manage
+ breaking changes.)
+
+ Note: this functionality is not currently available in the official
+ protobuf release, and it is not used for type URLs beginning with
+ type.googleapis.com.
+
+ Schemes other than `http`, `https` (or the empty scheme) might be
+ used with implementation specific semantics.
+
+
+
+ Field number for the "value" field.
+
+
+
+ Must be a valid serialized protocol buffer of the above specified type.
+
+
+
+
+ Retrieves the type name for a type URL, matching the
+ of the packed message type.
+
+
+
+ This is always just the last part of the URL, after the final slash. No validation of
+ anything before the trailing slash is performed. If the type URL does not include a slash,
+ an empty string is returned rather than an exception being thrown; this won't match any types,
+ and the calling code is probably in a better position to give a meaningful error.
+
+
+ There is no handling of fragments or queries at the moment.
+
+
+ The URL to extract the type name from
+ The type name
+
+
+
+ Returns a bool indictating whether this Any message is of the target message type
+
+ The descriptor of the message type
+ true if the type name matches the descriptor's full name or false otherwise
+
+
+
+ Unpacks the content of this Any message into the target message type,
+ which must match the type URL within this Any message.
+
+ The type of message to unpack the content into.
+ The unpacked message.
+ The target message type doesn't match the type URL in this message
+
+
+
+ Attempts to unpack the content of this Any message into the target message type,
+ if it matches the type URL within this Any message.
+
+ The type of message to attempt to unpack the content into.
+ true if the message was successfully unpacked; false if the type name didn't match
+
+
+
+ Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com".
+
+ The message to pack.
+ An Any message with the content and type URL of .
+
+
+
+ Packs the specified message into an Any message using the specified type URL prefix.
+
+ The message to pack.
+ The prefix for the type URL.
+ An Any message with the content and type URL of .
+
+
+ Holder for reflection information generated from google/protobuf/api.proto
+
+
+ File descriptor for google/protobuf/api.proto
+
+
+
+ Api is a light-weight descriptor for an API Interface.
+
+ Interfaces are also described as "protocol buffer services" in some contexts,
+ such as by the "service" keyword in a .proto file, but they are different
+ from API Services, which represent a concrete implementation of an interface
+ as opposed to simply a description of methods and bindings. They are also
+ sometimes simply referred to as "APIs" in other contexts, such as the name of
+ this message itself. See https://cloud.google.com/apis/design/glossary for
+ detailed terminology.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of this interface, including package name
+ followed by the interface's simple name.
+
+
+
+ Field number for the "methods" field.
+
+
+
+ The methods of this interface, in unspecified order.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the interface.
+
+
+
+ Field number for the "version" field.
+
+
+
+ A version string for this interface. If specified, must have the form
+ `major-version.minor-version`, as in `1.10`. If the minor version is
+ omitted, it defaults to zero. If the entire version field is empty, the
+ major version is derived from the package name, as outlined below. If the
+ field is not empty, the version in the package name will be verified to be
+ consistent with what is provided here.
+
+ The versioning schema uses [semantic
+ versioning](http://semver.org) where the major version number
+ indicates a breaking change and the minor version an additive,
+ non-breaking change. Both version numbers are signals to users
+ what to expect from different versions, and should be carefully
+ chosen based on the product plan.
+
+ The major version is also reflected in the package name of the
+ interface, which must end in `v<major-version>`, as in
+ `google.feature.v1`. For major versions 0 and 1, the suffix can
+ be omitted. Zero major versions must only be used for
+ experimental, non-GA interfaces.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ Source context for the protocol buffer service represented by this
+ message.
+
+
+
+ Field number for the "mixins" field.
+
+
+
+ Included interfaces. See [Mixin][].
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of the service.
+
+
+
+
+ Method represents a method of an API interface.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The simple name of this method.
+
+
+
+ Field number for the "request_type_url" field.
+
+
+
+ A URL of the input message type.
+
+
+
+ Field number for the "request_streaming" field.
+
+
+
+ If true, the request is streamed.
+
+
+
+ Field number for the "response_type_url" field.
+
+
+
+ The URL of the output message type.
+
+
+
+ Field number for the "response_streaming" field.
+
+
+
+ If true, the response is streamed.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the method.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of this method.
+
+
+
+
+ Declares an API Interface to be included in this interface. The including
+ interface must redeclare all the methods from the included interface, but
+ documentation and options are inherited as follows:
+
+ - If after comment and whitespace stripping, the documentation
+ string of the redeclared method is empty, it will be inherited
+ from the original method.
+
+ - Each annotation belonging to the service config (http,
+ visibility) which is not set in the redeclared method will be
+ inherited.
+
+ - If an http annotation is inherited, the path pattern will be
+ modified as follows. Any version prefix will be replaced by the
+ version of the including interface plus the [root][] path if
+ specified.
+
+ Example of a simple mixin:
+
+ package google.acl.v1;
+ service AccessControl {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v1/{resource=**}:getAcl";
+ }
+ }
+
+ package google.storage.v2;
+ service Storage {
+ rpc GetAcl(GetAclRequest) returns (Acl);
+
+ // Get a data record.
+ rpc GetData(GetDataRequest) returns (Data) {
+ option (google.api.http).get = "/v2/{resource=**}";
+ }
+ }
+
+ Example of a mixin configuration:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+
+ The mixin construct implies that all methods in `AccessControl` are
+ also declared with same name and request/response types in
+ `Storage`. A documentation generator or annotation processor will
+ see the effective `Storage.GetAcl` method after inheriting
+ documentation and annotations as follows:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+ Note how the version in the path pattern changed from `v1` to `v2`.
+
+ If the `root` field in the mixin is specified, it should be a
+ relative path under which inherited HTTP paths are placed. Example:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+ root: acls
+
+ This implies the following inherited HTTP annotation:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of the interface which is included.
+
+
+
+ Field number for the "root" field.
+
+
+
+ If non-empty specifies a path under which inherited HTTP paths
+ are rooted.
+
+
+
+ Holder for reflection information generated from google/protobuf/duration.proto
+
+
+ File descriptor for google/protobuf/duration.proto
+
+
+
+ A Duration represents a signed, fixed-length span of time represented
+ as a count of seconds and fractions of seconds at nanosecond
+ resolution. It is independent of any calendar and concepts like "day"
+ or "month". It is related to Timestamp in that the difference between
+ two Timestamp values is a Duration and it can be added or subtracted
+ from a Timestamp. Range is approximately +-10,000 years.
+
+ # Examples
+
+ Example 1: Compute Duration from two Timestamps in pseudo code.
+
+ Timestamp start = ...;
+ Timestamp end = ...;
+ Duration duration = ...;
+
+ duration.seconds = end.seconds - start.seconds;
+ duration.nanos = end.nanos - start.nanos;
+
+ if (duration.seconds < 0 && duration.nanos > 0) {
+ duration.seconds += 1;
+ duration.nanos -= 1000000000;
+ } else if (duration.seconds > 0 && duration.nanos < 0) {
+ duration.seconds -= 1;
+ duration.nanos += 1000000000;
+ }
+
+ Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+
+ Timestamp start = ...;
+ Duration duration = ...;
+ Timestamp end = ...;
+
+ end.seconds = start.seconds + duration.seconds;
+ end.nanos = start.nanos + duration.nanos;
+
+ if (end.nanos < 0) {
+ end.seconds -= 1;
+ end.nanos += 1000000000;
+ } else if (end.nanos >= 1000000000) {
+ end.seconds += 1;
+ end.nanos -= 1000000000;
+ }
+
+ Example 3: Compute Duration from datetime.timedelta in Python.
+
+ td = datetime.timedelta(days=3, minutes=10)
+ duration = Duration()
+ duration.FromTimedelta(td)
+
+ # JSON Mapping
+
+ In JSON format, the Duration type is encoded as a string rather than an
+ object, where the string ends in the suffix "s" (indicating seconds) and
+ is preceded by the number of seconds, with nanoseconds expressed as
+ fractional seconds. For example, 3 seconds with 0 nanoseconds should be
+ encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
+ be expressed in JSON format as "3.000000001s", and 3 seconds and 1
+ microsecond should be expressed in JSON format as "3.000001s".
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Signed seconds of the span of time. Must be from -315,576,000,000
+ to +315,576,000,000 inclusive. Note: these bounds are computed from:
+ 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Signed fractions of a second at nanosecond resolution of the span
+ of time. Durations less than one second are represented with a 0
+ `seconds` field and a positive or negative `nanos` field. For durations
+ of one second or more, a non-zero value for the `nanos` field must be
+ of the same sign as the `seconds` field. Must be from -999,999,999
+ to +999,999,999 inclusive.
+
+
+
+
+ The number of nanoseconds in a second.
+
+
+
+
+ The number of nanoseconds in a BCL tick (as used by and ).
+
+
+
+
+ The maximum permitted number of seconds.
+
+
+
+
+ The minimum permitted number of seconds.
+
+
+
+
+ Converts this to a .
+
+ If the duration is not a precise number of ticks, it is truncated towards 0.
+ The value of this duration, as a TimeSpan.
+ This value isn't a valid normalized duration, as
+ described in the documentation.
+
+
+
+ Converts the given to a .
+
+ The TimeSpan to convert.
+ The value of the given TimeSpan, as a Duration.
+
+
+
+ Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes.
+
+ The duration to negate. Must not be null.
+ The negated value of this duration.
+
+
+
+ Adds the two specified values together.
+
+ The first value to add. Must not be null.
+ The second value to add. Must not be null.
+
+
+
+
+ Subtracts one from another.
+
+ The duration to subtract from. Must not be null.
+ The duration to subtract. Must not be null.
+ The difference between the two specified durations.
+
+
+
+ Creates a duration with the normalized values from the given number of seconds and
+ nanoseconds, conforming with the description in the proto file.
+
+
+
+
+ Converts a duration specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in duration.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which
+ case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well
+ as Duration.
+
+
+
+ Holder for reflection information generated from google/protobuf/empty.proto
+
+
+ File descriptor for google/protobuf/empty.proto
+
+
+
+ A generic empty message that you can re-use to avoid defining duplicated
+ empty messages in your APIs. A typical example is to use it as the request
+ or the response type of an API method. For instance:
+
+ service Foo {
+ rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+ }
+
+
+
+ Holder for reflection information generated from google/protobuf/field_mask.proto
+
+
+ File descriptor for google/protobuf/field_mask.proto
+
+
+
+ `FieldMask` represents a set of symbolic field paths, for example:
+
+ paths: "f.a"
+ paths: "f.b.d"
+
+ Here `f` represents a field in some root message, `a` and `b`
+ fields in the message found in `f`, and `d` a field found in the
+ message in `f.b`.
+
+ Field masks are used to specify a subset of fields that should be
+ returned by a get operation or modified by an update operation.
+ Field masks also have a custom JSON encoding (see below).
+
+ # Field Masks in Projections
+
+ When used in the context of a projection, a response message or
+ sub-message is filtered by the API to only contain those fields as
+ specified in the mask. For example, if the mask in the previous
+ example is applied to a response message as follows:
+
+ f {
+ a : 22
+ b {
+ d : 1
+ x : 2
+ }
+ y : 13
+ }
+ z: 8
+
+ The result will not contain specific values for fields x,y and z
+ (their value will be set to the default, and omitted in proto text
+ output):
+
+ f {
+ a : 22
+ b {
+ d : 1
+ }
+ }
+
+ A repeated field is not allowed except at the last position of a
+ paths string.
+
+ If a FieldMask object is not present in a get operation, the
+ operation applies to all fields (as if a FieldMask of all fields
+ had been specified).
+
+ Note that a field mask does not necessarily apply to the
+ top-level response message. In case of a REST get operation, the
+ field mask applies directly to the response, but in case of a REST
+ list operation, the mask instead applies to each individual message
+ in the returned resource list. In case of a REST custom method,
+ other definitions may be used. Where the mask applies will be
+ clearly documented together with its declaration in the API. In
+ any case, the effect on the returned resource/resources is required
+ behavior for APIs.
+
+ # Field Masks in Update Operations
+
+ A field mask in update operations specifies which fields of the
+ targeted resource are going to be updated. The API is required
+ to only change the values of the fields as specified in the mask
+ and leave the others untouched. If a resource is passed in to
+ describe the updated values, the API ignores the values of all
+ fields not covered by the mask.
+
+ If a repeated field is specified for an update operation, new values will
+ be appended to the existing repeated field in the target resource. Note that
+ a repeated field is only allowed in the last position of a `paths` string.
+
+ If a sub-message is specified in the last position of the field mask for an
+ update operation, then new value will be merged into the existing sub-message
+ in the target resource.
+
+ For example, given the target message:
+
+ f {
+ b {
+ d: 1
+ x: 2
+ }
+ c: [1]
+ }
+
+ And an update message:
+
+ f {
+ b {
+ d: 10
+ }
+ c: [2]
+ }
+
+ then if the field mask is:
+
+ paths: ["f.b", "f.c"]
+
+ then the result will be:
+
+ f {
+ b {
+ d: 10
+ x: 2
+ }
+ c: [1, 2]
+ }
+
+ An implementation may provide options to override this default behavior for
+ repeated and message fields.
+
+ In order to reset a field's value to the default, the field must
+ be in the mask and set to the default value in the provided resource.
+ Hence, in order to reset all fields of a resource, provide a default
+ instance of the resource and set all fields in the mask, or do
+ not provide a mask as described below.
+
+ If a field mask is not present on update, the operation applies to
+ all fields (as if a field mask of all fields has been specified).
+ Note that in the presence of schema evolution, this may mean that
+ fields the client does not know and has therefore not filled into
+ the request will be reset to their default. If this is unwanted
+ behavior, a specific service may require a client to always specify
+ a field mask, producing an error if not.
+
+ As with get operations, the location of the resource which
+ describes the updated values in the request message depends on the
+ operation kind. In any case, the effect of the field mask is
+ required to be honored by the API.
+
+ ## Considerations for HTTP REST
+
+ The HTTP kind of an update operation which uses a field mask must
+ be set to PATCH instead of PUT in order to satisfy HTTP semantics
+ (PUT must only be used for full updates).
+
+ # JSON Encoding of Field Masks
+
+ In JSON, a field mask is encoded as a single string where paths are
+ separated by a comma. Fields name in each path are converted
+ to/from lower-camel naming conventions.
+
+ As an example, consider the following message declarations:
+
+ message Profile {
+ User user = 1;
+ Photo photo = 2;
+ }
+ message User {
+ string display_name = 1;
+ string address = 2;
+ }
+
+ In proto a field mask for `Profile` may look as such:
+
+ mask {
+ paths: "user.display_name"
+ paths: "photo"
+ }
+
+ In JSON, the same mask is represented as below:
+
+ {
+ mask: "user.displayName,photo"
+ }
+
+ # Field Masks and Oneof Fields
+
+ Field masks treat fields in oneofs just as regular fields. Consider the
+ following message:
+
+ message SampleMessage {
+ oneof test_oneof {
+ string name = 4;
+ SubMessage sub_message = 9;
+ }
+ }
+
+ The field mask can be:
+
+ mask {
+ paths: "name"
+ }
+
+ Or:
+
+ mask {
+ paths: "sub_message"
+ }
+
+ Note that oneof type names ("test_oneof" in this case) cannot be used in
+ paths.
+
+ ## Field Mask Verification
+
+ The implementation of any API method which has a FieldMask type field in the
+ request should verify the included field paths, and return an
+ `INVALID_ARGUMENT` error if any path is unmappable.
+
+
+
+ Field number for the "paths" field.
+
+
+
+ The set of field mask paths.
+
+
+
+
+ Converts a field mask specified by paths to a string.
+
+
+ If the value is a normalized duration in the range described in field_mask.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Paths in the field mask
+ Determines the handling of non-normalized values
+ The represented field mask is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Parses from a string to a FieldMask.
+
+
+
+
+ Parses from a string to a FieldMask and validates all field paths.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask for a list of field paths in a certain type.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether the given path is valid for a field mask.
+
+ true if the path is valid; false otherwise
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Checks whether a given field path is valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Converts this FieldMask to its canonical form. In the canonical form of a
+ FieldMask, all field paths are sorted alphabetically and redundant field
+ paths are removed.
+
+
+
+
+ Creates a union of two or more FieldMasks.
+
+
+
+
+ Calculates the intersection of two FieldMasks.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another with the
+ specified merge options.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another.
+
+
+
+
+ Options to customize merging behavior.
+
+
+
+
+ Whether to replace message fields(i.e., discard existing content in
+ destination message fields) when merging.
+ Default behavior is to merge the source message field into the
+ destination message field.
+
+
+
+
+ Whether to replace repeated fields (i.e., discard existing content in
+ destination repeated fields) when merging.
+ Default behavior is to append elements from source repeated field to the
+ destination repeated field.
+
+
+
+
+ Whether to replace primitive (non-repeated and non-message) fields in
+ destination message fields with the source primitive fields (i.e., if the
+ field is set in the source, the value is copied to the
+ destination; if the field is unset in the source, the field is cleared
+ from the destination) when merging.
+
+ Default behavior is to always set the value of the source primitive
+ field to the destination primitive field, and if the source field is
+ unset, the default value of the source field is copied to the
+ destination.
+
+
+
+ Holder for reflection information generated from google/protobuf/source_context.proto
+
+
+ File descriptor for google/protobuf/source_context.proto
+
+
+
+ `SourceContext` represents information about the source of a
+ protobuf element, like the file in which it is defined.
+
+
+
+ Field number for the "file_name" field.
+
+
+
+ The path-qualified name of the .proto file that contained the associated
+ protobuf element. For example: `"google/protobuf/source_context.proto"`.
+
+
+
+ Holder for reflection information generated from google/protobuf/struct.proto
+
+
+ File descriptor for google/protobuf/struct.proto
+
+
+
+ `NullValue` is a singleton enumeration to represent the null value for the
+ `Value` type union.
+
+ The JSON representation for `NullValue` is JSON `null`.
+
+
+
+
+ Null value.
+
+
+
+
+ `Struct` represents a structured data value, consisting of fields
+ which map to dynamically typed values. In some languages, `Struct`
+ might be supported by a native representation. For example, in
+ scripting languages like JS a struct is represented as an
+ object. The details of that representation are described together
+ with the proto support for the language.
+
+ The JSON representation for `Struct` is JSON object.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ Unordered map of dynamically typed values.
+
+
+
+
+ `Value` represents a dynamically typed value which can be either
+ null, a number, a string, a boolean, a recursive struct value, or a
+ list of values. A producer of value is expected to set one of these
+ variants. Absence of any variant indicates an error.
+
+ The JSON representation for `Value` is JSON value.
+
+
+
+ Field number for the "null_value" field.
+
+
+
+ Represents a null value.
+
+
+
+ Field number for the "number_value" field.
+
+
+
+ Represents a double value.
+
+
+
+ Field number for the "string_value" field.
+
+
+
+ Represents a string value.
+
+
+
+ Field number for the "bool_value" field.
+
+
+
+ Represents a boolean value.
+
+
+
+ Field number for the "struct_value" field.
+
+
+
+ Represents a structured value.
+
+
+
+ Field number for the "list_value" field.
+
+
+
+ Represents a repeated `Value`.
+
+
+
+ Enum of possible cases for the "kind" oneof.
+
+
+
+ Convenience method to create a Value message with a string value.
+
+ Value to set for the StringValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a number value.
+
+ Value to set for the NumberValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a Boolean value.
+
+ Value to set for the BoolValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a null initial value.
+
+ A newly-created Value message a null initial value.
+
+
+
+ Convenience method to create a Value message with an initial list of values.
+
+ The values provided are not cloned; the references are copied directly.
+ A newly-created Value message an initial list value.
+
+
+
+ Convenience method to create a Value message with an initial struct value
+
+ The value provided is not cloned; the reference is copied directly.
+ A newly-created Value message an initial struct value.
+
+
+
+ `ListValue` is a wrapper around a repeated field of values.
+
+ The JSON representation for `ListValue` is JSON array.
+
+
+
+ Field number for the "values" field.
+
+
+
+ Repeated field of dynamically typed values.
+
+
+
+
+ Extension methods on BCL time-related types, converting to protobuf types.
+
+
+
+
+ Converts the given to a .
+
+ The date and time to convert to a timestamp.
+ The value has a other than Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts the given to a .
+
+ The time span to convert.
+ The converted duration.
+
+
+ Holder for reflection information generated from google/protobuf/timestamp.proto
+
+
+ File descriptor for google/protobuf/timestamp.proto
+
+
+
+ A Timestamp represents a point in time independent of any time zone or local
+ calendar, encoded as a count of seconds and fractions of seconds at
+ nanosecond resolution. The count is relative to an epoch at UTC midnight on
+ January 1, 1970, in the proleptic Gregorian calendar which extends the
+ Gregorian calendar backwards to year one.
+
+ All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+ second table is needed for interpretation, using a [24-hour linear
+ smear](https://developers.google.com/time/smear).
+
+ The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+ restricting to that range, we ensure that we can convert to and from [RFC
+ 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+
+ # Examples
+
+ Example 1: Compute Timestamp from POSIX `time()`.
+
+ Timestamp timestamp;
+ timestamp.set_seconds(time(NULL));
+ timestamp.set_nanos(0);
+
+ Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+
+ Timestamp timestamp;
+ timestamp.set_seconds(tv.tv_sec);
+ timestamp.set_nanos(tv.tv_usec * 1000);
+
+ Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+
+ // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ Timestamp timestamp;
+ timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+
+ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+
+ long millis = System.currentTimeMillis();
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ .setNanos((int) ((millis % 1000) * 1000000)).build();
+
+ Example 5: Compute Timestamp from Java `Instant.now()`.
+
+ Instant now = Instant.now();
+
+ Timestamp timestamp =
+ Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+ .setNanos(now.getNano()).build();
+
+ Example 6: Compute Timestamp from current time in Python.
+
+ timestamp = Timestamp()
+ timestamp.GetCurrentTime()
+
+ # JSON Mapping
+
+ In JSON format, the Timestamp type is encoded as a string in the
+ [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+ format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+ where {year} is always expressed using four digits while {month}, {day},
+ {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+ seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+ are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+ is required. A proto3 JSON serializer should always use UTC (as indicated by
+ "Z") when printing the Timestamp type and a proto3 JSON parser should be
+ able to accept both UTC and other timezones (as indicated by an offset).
+
+ For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+ 01:30 UTC on January 15, 2017.
+
+ In JavaScript, one can convert a Date object to this format using the
+ standard
+ [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ method. In Python, a standard `datetime.datetime` object can be converted
+ to this format using
+ [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
+ ) to obtain a formatter capable of generating timestamps in this format.
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Represents seconds of UTC time since Unix epoch
+ 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+ 9999-12-31T23:59:59Z inclusive.
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Non-negative fractions of a second at nanosecond resolution. Negative
+ second values with fractions must still have non-negative nanos values
+ that count forward in time. Must be from 0 to 999,999,999
+ inclusive.
+
+
+
+
+ Returns the difference between one and another, as a .
+
+ The timestamp to subtract from. Must not be null.
+ The timestamp to subtract. Must not be null.
+ The difference between the two specified timestamps.
+
+
+
+ Adds a to a , to obtain another Timestamp.
+
+ The timestamp to add the duration to. Must not be null.
+ The duration to add. Must not be null.
+ The result of adding the duration to the timestamp.
+
+
+
+ Subtracts a from a , to obtain another Timestamp.
+
+ The timestamp to subtract the duration from. Must not be null.
+ The duration to subtract.
+ The result of subtracting the duration from the timestamp.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTime will always have a Kind of Utc.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTime.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTimeOffset will always have an Offset of zero.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTimeOffset.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts the specified to a .
+
+
+ The Kind of is not DateTimeKind.Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts a timestamp specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in timestamp.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+ Timestamp to compare
+ an integer indicating whether this timestamp precedes or follows the other
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Returns whether two timestamps are equivalent
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps refer to the same nanosecond
+
+
+
+ Returns whether two timestamps differ
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps differ
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+ Holder for reflection information generated from google/protobuf/type.proto
+
+
+ File descriptor for google/protobuf/type.proto
+
+
+
+ The syntax in which a protocol buffer element is defined.
+
+
+
+
+ Syntax `proto2`.
+
+
+
+
+ Syntax `proto3`.
+
+
+
+
+ A protocol buffer message type.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified message name.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ The list of fields.
+
+
+
+ Field number for the "oneofs" field.
+
+
+
+ The list of types appearing in `oneof` definitions in this type.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ A single field of a message type.
+
+
+
+ Field number for the "kind" field.
+
+
+
+ The field type.
+
+
+
+ Field number for the "cardinality" field.
+
+
+
+ The field cardinality.
+
+
+
+ Field number for the "number" field.
+
+
+
+ The field number.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The field name.
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ The field type URL, without the scheme, for message or enumeration
+ types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ The index of the field type in `Type.oneofs`, for message or enumeration
+ types. The first type has index 1; zero means the type is not in the list.
+
+
+
+ Field number for the "packed" field.
+
+
+
+ Whether to use alternative packed wire representation.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "json_name" field.
+
+
+
+ The field JSON name.
+
+
+
+ Field number for the "default_value" field.
+
+
+
+ The string value of the default value of this field. Proto2 syntax only.
+
+
+
+ Container for nested types declared in the Field message type.
+
+
+
+ Basic field types.
+
+
+
+
+ Field type unknown.
+
+
+
+
+ Field type double.
+
+
+
+
+ Field type float.
+
+
+
+
+ Field type int64.
+
+
+
+
+ Field type uint64.
+
+
+
+
+ Field type int32.
+
+
+
+
+ Field type fixed64.
+
+
+
+
+ Field type fixed32.
+
+
+
+
+ Field type bool.
+
+
+
+
+ Field type string.
+
+
+
+
+ Field type group. Proto2 syntax only, and deprecated.
+
+
+
+
+ Field type message.
+
+
+
+
+ Field type bytes.
+
+
+
+
+ Field type uint32.
+
+
+
+
+ Field type enum.
+
+
+
+
+ Field type sfixed32.
+
+
+
+
+ Field type sfixed64.
+
+
+
+
+ Field type sint32.
+
+
+
+
+ Field type sint64.
+
+
+
+
+ Whether a field is optional, required, or repeated.
+
+
+
+
+ For fields with unknown cardinality.
+
+
+
+
+ For optional fields.
+
+
+
+
+ For required fields. Proto2 syntax only.
+
+
+
+
+ For repeated fields.
+
+
+
+
+ Enum type definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum type name.
+
+
+
+ Field number for the "enumvalue" field.
+
+
+
+ Enum value definitions.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ Enum value definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum value name.
+
+
+
+ Field number for the "number" field.
+
+
+
+ Enum value number.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+
+ A protocol buffer option, which can be attached to a message, field,
+ enumeration, etc.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The option's name. For protobuf built-in options (options defined in
+ descriptor.proto), this is the short name. For example, `"map_entry"`.
+ For custom options, it should be the fully-qualified name. For example,
+ `"google.api.http"`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The option's value packed in an Any message. If the value is a primitive,
+ the corresponding wrapper type defined in google/protobuf/wrappers.proto
+ should be used. If the value is an enum, it should be stored as an int32
+ value using the google.protobuf.Int32Value type.
+
+
+
+ Holder for reflection information generated from google/protobuf/wrappers.proto
+
+
+ File descriptor for google/protobuf/wrappers.proto
+
+
+
+ Field number for the single "value" field in all wrapper types.
+
+
+
+
+ Wrapper message for `double`.
+
+ The JSON representation for `DoubleValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The double value.
+
+
+
+
+ Wrapper message for `float`.
+
+ The JSON representation for `FloatValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The float value.
+
+
+
+
+ Wrapper message for `int64`.
+
+ The JSON representation for `Int64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int64 value.
+
+
+
+
+ Wrapper message for `uint64`.
+
+ The JSON representation for `UInt64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint64 value.
+
+
+
+
+ Wrapper message for `int32`.
+
+ The JSON representation for `Int32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int32 value.
+
+
+
+
+ Wrapper message for `uint32`.
+
+ The JSON representation for `UInt32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint32 value.
+
+
+
+
+ Wrapper message for `bool`.
+
+ The JSON representation for `BoolValue` is JSON `true` and `false`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bool value.
+
+
+
+
+ Wrapper message for `string`.
+
+ The JSON representation for `StringValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The string value.
+
+
+
+
+ Wrapper message for `bytes`.
+
+ The JSON representation for `BytesValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bytes value.
+
+
+
+
+ This class is used internally by the Protocol Buffer Library and generated
+ message implementations. It is public only for the sake of those generated
+ messages. Others should not use this class directly.
+
+ This class contains constants and helper functions useful for dealing with
+ the Protocol Buffer wire format.
+
+
+
+
+
+ Wire types within protobuf encoding.
+
+
+
+
+ Variable-length integer.
+
+
+
+
+ A fixed-length 64-bit value.
+
+
+
+
+ A length-delimited value, i.e. a length followed by that many bytes of data.
+
+
+
+
+ A "start group" value
+
+
+
+
+ An "end group" value
+
+
+
+
+ A fixed-length 32-bit value.
+
+
+
+
+ Given a tag value, determines the wire type (lower 3 bits).
+
+
+
+
+ Given a tag value, determines the field number (the upper 29 bits).
+
+
+
+
+ Makes a tag value given a field number and wire type.
+
+
+
+
+ Abstraction for writing to a steam / IBufferWriter
+
+
+
+
+ Initialize an instance with a coded output stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer writer.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer represented by a single span (i.e. buffer cannot be refreshed)
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Verifies that SpaceLeft returns zero.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ An opaque struct that represents the current serialization state and is passed along
+ as the serialization proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Creates a WriteContext instance from CodedOutputStream.
+ WARNING: internally this copies the CodedOutputStream's state, so after done with the WriteContext,
+ the CodedOutputStream's state needs to be updated.
+
+
+
+
+ Writes a double field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Primitives for encoding protobuf wire format.
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Given a QWORD which represents a buffer of 4 ASCII chars in machine-endian order,
+ narrows each WORD to a BYTE, then writes the 4-byte result to the output buffer
+ also in machine-endian order.
+
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Encodes and writes a tag.
+
+
+
+
+ Writes an already-encoded tag.
+
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+
+
+
+ Encode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Encode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Writing messages / groups.
+
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+
+
+
+ Writes a group, without a tag.
+
+
+
+
+ Writes a message, without a tag.
+ Message will be written without a length prefix.
+
+
+
+
+ Indicates that certain members on a specified are accessed dynamically,
+ for example through .
+
+
+ This allows tools to understand which members are being accessed during the execution
+ of a program.
+
+ This attribute is valid on members whose type is or .
+
+ When this attribute is applied to a location of type , the assumption is
+ that the string represents a fully qualified type name.
+
+ When this attribute is applied to a class, interface, or struct, the members specified
+ can be accessed dynamically on instances returned from calling
+ on instances of that class, interface, or struct.
+
+ If the attribute is applied to a method it's treated as a special case and it implies
+ the attribute should be applied to the "this" parameter of the method. As such the attribute
+ should only be used on instance methods of types assignable to System.Type (or string, but no methods
+ will use it there).
+
+
+
+
+ Initializes a new instance of the class
+ with the specified member types.
+
+ The types of members dynamically accessed.
+
+
+
+ Gets the which specifies the type
+ of members dynamically accessed.
+
+
+
+
+ Specifies the types of members that are dynamically accessed.
+
+ This enumeration has a attribute that allows a
+ bitwise combination of its member values.
+
+
+
+
+ Specifies no members.
+
+
+
+
+ Specifies the default, parameterless public constructor.
+
+
+
+
+ Specifies all public constructors.
+
+
+
+
+ Specifies all non-public constructors.
+
+
+
+
+ Specifies all public methods.
+
+
+
+
+ Specifies all non-public methods.
+
+
+
+
+ Specifies all public fields.
+
+
+
+
+ Specifies all non-public fields.
+
+
+
+
+ Specifies all public nested types.
+
+
+
+
+ Specifies all non-public nested types.
+
+
+
+
+ Specifies all public properties.
+
+
+
+
+ Specifies all non-public properties.
+
+
+
+
+ Specifies all public events.
+
+
+
+
+ Specifies all non-public events.
+
+
+
+
+ Specifies all interfaces implemented by the type.
+
+
+
+
+ Specifies all members.
+
+
+
+
+ Indicates that the specified method requires dynamic access to code that is not referenced
+ statically, for example through .
+
+
+ This allows tools to understand which methods are unsafe to call when removing unreferenced
+ code from an application.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified message.
+
+
+ A message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets a message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets or sets an optional URL that contains more information about the method,
+ why it requires unreferenced code, and what options a consumer has to deal with it.
+
+
+
+
+ Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
+ single code artifact.
+
+
+ is different than
+ in that it doesn't have a
+ . So it is always preserved in the compiled assembly.
+
+
+
+
+ Initializes a new instance of the
+ class, specifying the category of the tool and the identifier for an analysis rule.
+
+ The category for the attribute.
+ The identifier of the analysis rule the attribute applies to.
+
+
+
+ Gets the category identifying the classification of the attribute.
+
+
+ The property describes the tool or tool analysis category
+ for which a message suppression attribute applies.
+
+
+
+
+ Gets the identifier of the analysis tool rule to be suppressed.
+
+
+ Concatenated together, the and
+ properties form a unique check identifier.
+
+
+
+
+ Gets or sets the scope of the code that is relevant for the attribute.
+
+
+ The Scope property is an optional argument that specifies the metadata scope for which
+ the attribute is relevant.
+
+
+
+
+ Gets or sets a fully qualified path that represents the target of the attribute.
+
+
+ The property is an optional argument identifying the analysis target
+ of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
+ Because it is fully qualified, it can be long, particularly for targets such as parameters.
+ The analysis tool user interface should be capable of automatically formatting the parameter.
+
+
+
+
+ Gets or sets an optional argument expanding on exclusion criteria.
+
+
+ The property is an optional argument that specifies additional
+ exclusion where the literal metadata target is not sufficiently precise. For example,
+ the cannot be applied within a method,
+ and it may be desirable to suppress a violation against a statement in the method that will
+ give a rule violation, but not against all statements in the method.
+
+
+
+
+ Gets or sets the justification for suppressing the code analysis message.
+
+
+
+
diff --git a/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.dll b/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.dll
new file mode 100644
index 0000000..0e52e71
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.dll differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.pdb b/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.pdb
new file mode 100644
index 0000000..e55533d
Binary files /dev/null and b/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.pdb differ
diff --git a/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.xml b/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.xml
new file mode 100644
index 0000000..fbff505
--- /dev/null
+++ b/packages/Google.Protobuf.3.21.9/lib/netstandard2.0/Google.Protobuf.xml
@@ -0,0 +1,10465 @@
+
+
+
+ Google.Protobuf
+
+
+
+
+ Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy
+
+
+
+
+ The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy
+
+
+
+
+ Determines which copy routine to use based on the number of bytes to be copied.
+
+
+
+
+ Reverses the order of bytes in the array
+
+
+
+
+ Immutable array of bytes.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+ This method encapsulates converting array to memory. Reduces need for SecuritySafeCritical
+ in .NET Framework.
+
+
+
+
+ Constructs a new ByteString from the given memory. The memory is
+ *not* copied, and must not be modified after this constructor is called.
+
+
+
+
+ Returns an empty ByteString.
+
+
+
+
+ Returns the length of this ByteString in bytes.
+
+
+
+
+ Returns true if this byte string is empty, false otherwise.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Converts this into a byte array.
+
+ The data is copied - changes to the returned array will not be reflected in this ByteString.
+ A byte array with the same data as this ByteString.
+
+
+
+ Converts this into a standard base64 representation.
+
+ A base64 representation of this ByteString.
+
+
+
+ Constructs a from the Base64 Encoded String.
+
+
+
+
+ Constructs a from data in the given stream, synchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from data in the given stream, asynchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ The cancellation token to use when reading from the stream, if any.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from the given array. The contents
+ are copied, so further modifications to the array will not
+ be reflected in the returned ByteString.
+ This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form
+ which is primarily useful for testing.
+
+
+
+
+ Constructs a from a portion of a byte array.
+
+
+
+
+ Constructs a from a read only span. The contents
+ are copied, so further modifications to the span will not
+ be reflected in the returned .
+
+
+
+
+ Creates a new by encoding the specified text with
+ the given encoding.
+
+
+
+
+ Creates a new by encoding the specified text in UTF-8.
+
+
+
+
+ Returns the byte at the given index.
+
+
+
+
+ Converts this into a string by applying the given encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with the given encoding.
+
+ The encoding to use to decode the binary data into text.
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Converts this into a string by applying the UTF-8 encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with UTF-8.
+
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Creates a CodedInputStream from this ByteString's data.
+
+
+
+
+ Compares two byte strings for equality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ true if the byte strings are equal; false otherwise.
+
+
+
+ Compares two byte strings for inequality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ false if the byte strings are equal; true otherwise.
+
+
+
+ Compares this byte string with another object.
+
+ The object to compare this with.
+ true if refers to an equal ; false otherwise.
+
+
+
+ Returns a hash code for this object. Two equal byte strings
+ will return the same hash code.
+
+ A hash code for this object.
+
+
+
+ Compares this byte string with another.
+
+ The to compare this with.
+ true if refers to an equal byte string; false otherwise.
+
+
+
+ Copies the entire byte array to the destination array provided at the offset specified.
+
+
+
+
+ Writes the entire byte array to the provided stream
+
+
+
+
+ SecuritySafeCritical attribute can not be placed on types with async methods.
+ This class has ByteString's async methods so it can be marked with SecuritySafeCritical.
+
+
+
+
+ Reads and decodes protocol message fields.
+
+
+
+ This class is generally used by generated code to read appropriate
+ primitives from the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format.
+
+
+ Repeated fields and map fields are not handled by this class; use
+ and to serialize such fields.
+
+
+
+
+
+ Whether to leave the underlying stream open when disposing of this stream.
+ This is always true when there's no stream.
+
+
+
+
+ Buffer of data read from the stream or provided at construction time.
+
+
+
+
+ The stream to read further input from, or null if the byte array buffer was provided
+ directly on construction, with no further data available.
+
+
+
+
+ The parser state is kept separately so that other parse implementations can reuse the same
+ parsing primitives.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given byte array.
+
+
+
+
+ Creates a new that reads from the given byte array slice.
+
+
+
+
+ Creates a new reading data from the given stream, which will be disposed
+ when the returned object is disposed.
+
+ The stream to read from.
+
+
+
+ Creates a new reading data from the given stream.
+
+ The stream to read from.
+ true to leave open when the returned
+ is disposed; false to dispose of the given stream when the
+ returned object is disposed.
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the default limits.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the specified limits.
+
+
+ This chains to the version with the default limits instead of vice versa to avoid
+ having to check that the default values are valid every time.
+
+
+
+
+ Creates a with the specified size and recursion limits, reading
+ from an input stream.
+
+
+ This method exists separately from the constructor to reduce the number of constructor overloads.
+ It is likely to be used considerably less frequently than the constructors, as the default limits
+ are suitable for most use cases.
+
+ The input stream to read from
+ The total limit of data to read from the stream.
+ The maximum recursion depth to allow while reading.
+ A CodedInputStream reading from with the specified size
+ and recursion limits.
+
+
+
+ Returns the current position in the input stream, or the position in the input buffer
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the stream.
+
+
+
+
+ Returns the size limit for this stream.
+
+
+ This limit is applied when reading from the underlying stream, as a sanity check. It is
+ not applied when reading from a byte array data source without an underlying stream.
+ The default value is Int32.MaxValue.
+
+
+ The size limit.
+
+
+
+
+ Returns the recursion limit for this stream. This limit is applied whilst reading messages,
+ to avoid maliciously-recursive data.
+
+
+ The default limit is 100.
+
+
+ The recursion limit for this stream.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Disposes of this instance, potentially closing any underlying stream.
+
+
+ As there is no flushing to perform here, disposing of a which
+ was constructed with the leaveOpen option parameter set to true (or one which
+ was constructed to read from a byte array) has no effect.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of stream".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputStream; it may be the end of the logical stream
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of stream. (0 is never a valid tag.)
+
+
+
+ Skips the data for the field with the tag we've just read.
+ This should be called directly after , when
+ the caller wishes to skip an unknown field.
+
+
+ This method throws if the last-read tag was an end-group tag.
+ If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the
+ start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly
+ resulting in an error if an end-group tag has not been paired with an earlier start-group tag.
+
+ The last tag was an end-group tag
+ The last read operation read to the end of the logical stream
+
+
+
+ Skip a group.
+
+
+
+
+ Reads a double field from the stream.
+
+
+
+
+ Reads a float field from the stream.
+
+
+
+
+ Reads a uint64 field from the stream.
+
+
+
+
+ Reads an int64 field from the stream.
+
+
+
+
+ Reads an int32 field from the stream.
+
+
+
+
+ Reads a fixed64 field from the stream.
+
+
+
+
+ Reads a fixed32 field from the stream.
+
+
+
+
+ Reads a bool field from the stream.
+
+
+
+
+ Reads a string field from the stream.
+
+
+
+
+ Reads an embedded message field value from the stream.
+
+
+
+
+ Reads an embedded group field from the stream.
+
+
+
+
+ Reads a bytes field value from the stream.
+
+
+
+
+ Reads a uint32 field value from the stream.
+
+
+
+
+ Reads an enum field value from the stream.
+
+
+
+
+ Reads an sfixed32 field value from the stream.
+
+
+
+
+ Reads an sfixed64 field value from the stream.
+
+
+
+
+ Reads an sint32 field value from the stream.
+
+
+
+
+ Reads an sint64 field value from the stream.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Reads a raw varint from the stream.
+
+
+
+
+ Reads a 32-bit little-endian integer from the stream.
+
+
+
+
+ Reads a 64-bit little-endian integer from the stream.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Called when buffer is empty to read more bytes from the
+ input. If is true, RefillBuffer() guarantees that
+ either there will be at least one byte in the buffer when it returns
+ or it will throw an exception. If is false,
+ RefillBuffer() returns false if no more bytes were available.
+
+
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a top-level message or a nested message after the limits for this message have been pushed.
+ (parser will proceed until the end of the current limit)
+ NOTE: this method needs to be public because it's invoked by the generated code - e.g. msg.MergeFrom(CodedInputStream input) method
+
+
+
+
+ Encodes and writes protocol message fields.
+
+
+
+ This class is generally used by generated code to write appropriate
+ primitives to the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format. Unlike some other implementations,
+ this does not include combined "write tag and value" methods. Generated
+ code knows the exact byte representations of the tags they're going to write,
+ so there's no need to re-encode them each time. Manually-written code calling
+ this class should just call one of the WriteTag overloads before each value.
+
+
+ Repeated fields and map fields are not handled by this class; use RepeatedField<T>
+ and MapField<TKey, TValue> to serialize such fields.
+
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ double field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ float field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bool field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ string field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ group field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ embedded message field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bytes field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ enum field, including the tag. The caller is responsible for
+ converting the enum value to its numeric value.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a length,
+ as written by .
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a tag.
+
+
+
+
+ The buffer size used by CreateInstance(Stream).
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array slice. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new which write to the given stream, and disposes of that
+ stream when the returned CodedOutputStream is disposed.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+ The size of buffer to use internally.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream.
+
+ The stream to write to.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to.
+ The size of buffer to use internally.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Returns the current position in the stream, or the position in the output buffer
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ Only the message data is written, without a length-delimiter.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Indicates that a CodedOutputStream wrapping a flat byte array
+ ran out of space.
+
+
+
+
+ Flushes any buffered data and optionally closes the underlying stream, if any.
+
+
+
+ By default, any underlying stream is closed by this method. To configure this behaviour,
+ use a constructor overload with a leaveOpen parameter. If this instance does not
+ have an underlying stream, this method does nothing.
+
+
+ For the sake of efficiency, calling this method does not prevent future write calls - but
+ if a later write ends up writing to a stream which has been disposed, that is likely to
+ fail. It is recommend that you not call any other methods after this.
+
+
+
+
+
+ Flushes any buffered data to the underlying stream (if there is one).
+
+
+
+
+ Verifies that SpaceLeft returns zero. It's common to create a byte array
+ that is exactly big enough to hold a message, then write to it with
+ a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that
+ the message was actually as big as expected, which can help finding bugs.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ Utility to compare if two Lists are the same, and the hash code
+ of a List.
+
+
+
+
+ Checks if two lists are equal.
+
+
+
+
+ Gets the list's hash code.
+
+
+
+
+ Representation of a map field in a Protocol Buffer message.
+
+ Key type in the map. Must be a type supported by Protocol Buffer map keys.
+ Value type in the map. Must be a type supported by Protocol Buffers.
+
+
+ For string keys, the equality comparison is provided by .
+
+
+ Null values are not permitted in the map, either for wrapper types or regular messages.
+ If a map is deserialized from a data stream and the value is missing from an entry, a default value
+ is created instead. For primitive types, that is the regular default value (0, the empty string and so
+ on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length
+ encoded value for the field.
+
+
+ This implementation does not generally prohibit the use of key/value types which are not
+ supported by Protocol Buffers (e.g. using a key type of byte
) but nor does it guarantee
+ that all operations will work in such cases.
+
+
+ The order in which entries are returned when iterating over this object is undefined, and may change
+ in future versions.
+
+
+
+
+
+ Creates a deep clone of this object.
+
+
+ A deep clone of this object.
+
+
+
+
+ Adds the specified key/value pair to the map.
+
+
+ This operation fails if the key already exists in the map. To replace an existing entry, use the indexer.
+
+ The key to add
+ The value to add.
+ The given key already exists in map.
+
+
+
+ Determines whether the specified key is present in the map.
+
+ The key to check.
+ true if the map contains the given key; false otherwise.
+
+
+
+ Removes the entry identified by the given key from the map.
+
+ The key indicating the entry to remove from the map.
+ true if the map contained the given key before the entry was removed; false otherwise.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key whose value to get.
+ When this method returns, the value associated with the specified key, if the key is found;
+ otherwise, the default value for the type of the parameter.
+ This parameter is passed uninitialized.
+ true if the map contains an element with the specified key; otherwise, false.
+
+
+
+ Gets or sets the value associated with the specified key.
+
+ The key of the value to get or set.
+ The property is retrieved and key does not exist in the collection.
+ The value associated with the specified key. If the specified key is not found,
+ a get operation throws a , and a set operation creates a new element with the specified key.
+
+
+
+ Gets a collection containing the keys in the map.
+
+
+
+
+ Gets a collection containing the values in the map.
+
+
+
+
+ Adds the specified entries to the map. The keys and values are not automatically cloned.
+
+ The entries to add to the map.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Adds the specified item to the map.
+
+ The item to add to the map.
+
+
+
+ Removes all items from the map.
+
+
+
+
+ Determines whether map contains an entry equivalent to the given key/value pair.
+
+ The key/value pair to find.
+
+
+
+
+ Copies the key/value pairs in this map to an array.
+
+ The array to copy the entries into.
+ The index of the array at which to start copying values.
+
+
+
+ Removes the specified key/value pair from the map.
+
+ Both the key and the value must be found for the entry to be removed.
+ The key/value pair to remove.
+ true if the key/value pair was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the map.
+
+
+
+
+ Gets a value indicating whether the map is read-only.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this map with another for equality.
+
+
+ The order of the key/value pairs in the maps is not deemed significant in this comparison.
+
+ The map to compare this with.
+ true if refers to an equal map; false otherwise.
+
+
+
+ Adds entries to the map from the given stream.
+
+
+ It is assumed that the stream is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the stream until the end is reached, or
+ a different tag is encountered.
+
+ Stream to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Adds entries to the map from the given parse context.
+
+
+ It is assumed that the input is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the input until the end is reached, or
+ a different tag is encountered.
+
+ Input to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Writes the contents of this map to the given coded output stream, using the specified codec
+ to encode each entry.
+
+ The output stream to write to.
+ The codec to use for each entry.
+
+
+
+ Writes the contents of this map to the given write context, using the specified codec
+ to encode each entry.
+
+ The write context to write to.
+ The codec to use for each entry.
+
+
+
+ Calculates the size of this map based on the given entry codec.
+
+ The codec to use to encode each entry.
+
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ A codec for a specific map field. This contains all the information required to encode and
+ decode the nested messages.
+
+
+
+
+ Creates a new entry codec based on a separate key codec and value codec,
+ and the tag to use for each map entry.
+
+ The key codec.
+ The value codec.
+ The map tag to use to introduce each map entry.
+
+
+
+ The key codec.
+
+
+
+
+ The value codec.
+
+
+
+
+ The tag used in the enclosing message to indicate map entries.
+
+
+
+
+ Provides a central place to implement equality comparisons, primarily for bitwise float/double equality.
+
+
+
+
+ Returns an equality comparer for suitable for Protobuf equality comparisons.
+ This is usually just the default equality comparer for the type, but floating point numbers are compared
+ bitwise.
+
+ The type of equality comparer to return.
+ The equality comparer.
+
+
+
+ Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Read-only wrapper around another dictionary.
+
+
+
+
+ The contents of a repeated field: essentially, a collection with some extra
+ restrictions (no null values) and capabilities (deep cloning).
+
+
+ This implementation does not generally prohibit the use of types which are not
+ supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases.
+
+ The element type of the repeated field.
+
+
+
+ Creates a deep clone of this repeated field.
+
+
+ If the field type is
+ a message type, each element is also cloned; otherwise, it is
+ assumed that the field type is primitive (including string and
+ bytes, both of which are immutable) and so a simple copy is
+ equivalent to a deep clone.
+
+ A deep clone of this repeated field.
+
+
+
+ Adds the entries from the given input stream, decoding them with the specified codec.
+
+ The input stream to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Adds the entries from the given parse context, decoding them with the specified codec.
+
+ The input to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Calculates the size of this collection based on the given codec.
+
+ The codec to use when encoding each field.
+ The number of bytes that would be written to an output by one of the WriteTo methods,
+ using the same codec.
+
+
+
+ Writes the contents of this collection to the given ,
+ encoding each value using the specified codec.
+
+ The output stream to write to.
+ The codec to use when encoding each value.
+
+
+
+ Writes the contents of this collection to the given write context,
+ encoding each value using the specified codec.
+
+ The write context to write to.
+ The codec to use when encoding each value.
+
+
+
+ Gets and sets the capacity of the RepeatedField's internal array. WHen set, the internal array is reallocated to the given capacity.
+ The new value is less than Count -or- when Count is less than 0.
+
+
+
+
+ Adds the specified item to the collection.
+
+ The item to add.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Determines whether this collection contains the given item.
+
+ The item to find.
+ true if this collection contains the given item; false otherwise.
+
+
+
+ Copies this collection to the given array.
+
+ The array to copy to.
+ The first index of the array to copy to.
+
+
+
+ Removes the specified item from the collection
+
+ The item to remove.
+ true if the item was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the collection.
+
+
+
+
+ Gets a value indicating whether the collection is read-only.
+
+
+
+
+ Adds all of the specified values into this collection.
+
+ The values to add to this collection.
+
+
+
+ Adds all of the specified values into this collection. This method is present to
+ allow repeated fields to be constructed from queries within collection initializers.
+ Within non-collection-initializer code, consider using the equivalent
+ method instead for clarity.
+
+ The values to add to this collection.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this repeated field with another for equality.
+
+ The repeated field to compare this with.
+ true if refers to an equal repeated field; false otherwise.
+
+
+
+ Returns the index of the given item within the collection, or -1 if the item is not
+ present.
+
+ The item to find in the collection.
+ The zero-based index of the item, or -1 if it is not found.
+
+
+
+ Inserts the given item at the specified index.
+
+ The index at which to insert the item.
+ The item to insert.
+
+
+
+ Removes the item at the given index.
+
+ The zero-based index of the item to remove.
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ Gets or sets the item at the specified index.
+
+
+ The element at the specified index.
+
+ The zero-based index of the element to get or set.
+ The item at the specified index.
+
+
+
+ Extension methods for , effectively providing
+ the familiar members from previous desktop framework versions while
+ targeting the newer releases, .NET Core etc.
+
+
+
+
+ Returns the public getter of a property, or null if there is no such getter
+ (either because it's read-only, or the getter isn't public).
+
+
+
+
+ Returns the public setter of a property, or null if there is no such setter
+ (either because it's write-only, or the setter isn't public).
+
+
+
+
+ Provides extension methods on Type that just proxy to TypeInfo.
+ These are used to support the new type system from .NET 4.5, without
+ having calls to GetTypeInfo all over the place. While the methods here are meant to be
+ broadly compatible with the desktop framework, there are some subtle differences in behaviour - but
+ they're not expected to affect our use cases. While the class is internal, that should be fine: we can
+ evaluate each new use appropriately.
+
+
+
+
+ See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom
+
+
+
+
+ Returns a representation of the public property associated with the given name in the given type,
+ including inherited properties or null if there is no such public property.
+ Here, "public property" means a property where either the getter, or the setter, or both, is public.
+
+
+
+
+ Returns a representation of the public method associated with the given name in the given type,
+ including inherited methods.
+
+
+ This has a few differences compared with Type.GetMethod in the desktop framework. It will throw
+ if there is an ambiguous match even between a private method and a public one, but it *won't* throw
+ if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and
+ class Child : Base declares public void Foo(long)).
+
+ One type in the hierarchy declared more than one method with the same name
+
+
+
+ Represents a non-generic extension definition. This API is experimental and subject to change.
+
+
+
+
+ Internal use. Creates a new extension with the specified field number.
+
+
+
+
+ Gets the field number of this extension
+
+
+
+
+ Represents a type-safe extension identifier used for getting and setting single extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The field value type of this extension
+
+
+
+ Creates a new extension identifier with the specified field number and codec
+
+
+
+
+ Represents a type-safe extension identifier used for getting repeated extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The repeated field value type of this extension
+
+
+
+ Creates a new repeated extension identifier with the specified field number and codec
+
+
+
+
+ Provides extensions to messages while parsing. This API is experimental and subject to change.
+
+
+
+
+ Creates a new empty extension registry
+
+
+
+
+ Gets the total number of extensions in this extension registry
+
+
+
+
+ Returns whether the registry is readonly
+
+
+
+
+ Adds the specified extension to the registry
+
+
+
+
+ Adds the specified extensions to the registry
+
+
+
+
+ Clears the registry of all values
+
+
+
+
+ Gets whether the extension registry contains the specified extension
+
+
+
+
+ Copies the arrays in the registry set to the specified array at the specified index
+
+ The array to copy to
+ The array index to start at
+
+
+
+ Returns an enumerator to enumerate through the items in the registry
+
+ Returns an enumerator for the extensions in this registry
+
+
+
+ Removes the specified extension from the set
+
+ The extension
+ true if the extension was removed, otherwise false
+
+
+
+ Clones the registry into a new registry
+
+
+
+
+ Methods for managing s with null checking.
+
+ Most users will not use this class directly and its API is experimental and subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if it doesn't exist in this set
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it doesn't exist
+
+
+
+
+ Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null.
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Merges the second set into the first set, creating a new instance if first is null
+
+
+
+
+ Clones the set into a new set. If the set is null, this returns null
+
+
+
+
+ Used for keeping track of extensions in messages.
+ methods route to this set.
+
+ Most users will not need to use this class directly
+
+ The message type that extensions in this set target
+
+
+
+ Gets a hash code of the set
+
+
+
+
+ Returns whether this set is equal to the other object
+
+
+
+
+ Calculates the size of this extension set
+
+
+
+
+ Writes the extension values in this set to the output stream
+
+
+
+
+ Writes the extension values in this set to the write context
+
+
+
+
+ Factory methods for .
+
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a message field with the given tag.
+
+ The tag.
+ A parser to use for the message type.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a group field with the given tag.
+
+ The start group tag.
+ The end group tag.
+ A parser to use for the group message type.
+ A codec for given tag
+
+
+
+ Creates a codec for a wrapper type of a class - which must be string or ByteString.
+
+
+
+
+ Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64,
+ Bool, Single or Double.
+
+
+
+
+ Helper code to create codecs for wrapper types.
+
+
+ Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it
+ slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place,
+ we can refactor later if we come up with something cleaner.
+
+
+
+
+ Returns a field codec which effectively wraps a value of type T in a message.
+
+
+
+
+
+
+ An encode/decode pair for a single field. This effectively encapsulates
+ all the information needed to read or write the field value from/to a coded
+ stream.
+
+
+ This class is public and has to be as it is used by generated code, but its public
+ API is very limited - just what the generated code needs to call directly.
+
+
+
+ This never writes default values to the stream, and does not address "packedness"
+ in repeated fields itself, other than to know whether or not the field *should* be packed.
+
+
+
+
+ Merges an input stream into a value
+
+
+
+
+ Merges a value into a reference to another value, returning a boolean if the value was set
+
+
+
+
+ Returns a delegate to write a value (unconditionally) to a coded output stream.
+
+
+
+
+ Returns the size calculator for just a value.
+
+
+
+
+ Returns a delegate to read a value from a coded input stream. It is assumed that
+ the stream is already positioned on the appropriate tag.
+
+
+
+
+ Returns a delegate to merge a value from a coded input stream.
+ It is assumed that the stream is already positioned on the appropriate tag
+
+
+
+
+ Returns a delegate to merge two values together.
+
+
+
+
+ Returns the fixed size for an entry, or 0 if sizes vary.
+
+
+
+
+ Gets the tag of the codec.
+
+
+ The tag of the codec.
+
+
+
+
+ Gets the end tag of the codec or 0 if there is no end tag
+
+
+ The end tag of the codec.
+
+
+
+
+ Default value for this codec. Usually the same for every instance of the same type, but
+ for string/ByteString wrapper fields the codec's default value is null, whereas for
+ other string/ByteString fields it's "" or ByteString.Empty.
+
+
+ The default value of the codec's type.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Reads a value of the codec type from the given .
+
+ The input stream to read from.
+ The value read from the stream.
+
+
+
+ Reads a value of the codec type from the given .
+
+ The parse context to read from.
+ The value read.
+
+
+
+ Calculates the size required to write the given value, with a tag,
+ if the value is not the default.
+
+
+
+
+ Calculates the size required to write the given value, with a tag, even
+ if the value is the default.
+
+
+
+
+ A tree representation of a FieldMask. Each leaf node in this tree represent
+ a field path in the FieldMask.
+
+ For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be:
+
+ [root] -+- foo -+- bar
+ | |
+ | +- baz
+ |
+ +- bar --- baz
+
+
+ By representing FieldMasks with this tree structure we can easily convert
+ a FieldMask to a canonical form, merge two FieldMasks, calculate the
+ intersection to two FieldMasks and traverse all fields specified by the
+ FieldMask in a message tree.
+
+
+
+
+ Creates an empty FieldMaskTree.
+
+
+
+
+ Creates a FieldMaskTree for a given FieldMask.
+
+
+
+
+ Adds a field path to the tree. In a FieldMask, every field path matches the
+ specified field as well as all its sub-fields. For example, a field path
+ "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding
+ a field path to the tree, redundant sub-paths will be removed. That is,
+ after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it
+ exists, which will turn the tree node for "foo.bar" to a leaf node.
+ Likewise, if the field path to add is a sub-path of an existing leaf node,
+ nothing will be changed in the tree.
+
+
+
+
+ Merges all field paths in a FieldMask into this tree.
+
+
+
+
+ Converts this tree to a FieldMask.
+
+
+
+
+ Gathers all field paths in a sub-tree.
+
+
+
+
+ Adds the intersection of this tree with the given to .
+
+
+
+
+ Merges all fields specified by this FieldMaskTree from to .
+
+
+
+
+ Merges all fields specified by a sub-tree from to .
+
+
+
+
+ Class containing helpful workarounds for various platform compatibility
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ parsing from and writing to .
+
+
+
+
+ Internal implementation of merging data from given parse context into this message.
+ Users should never invoke this method directly.
+
+
+
+
+ Internal implementation of writing this message to a given write context.
+ Users should never invoke this method directly.
+
+
+
+
+ A message type that has a custom string format for diagnostic purposes.
+
+
+
+ Calling on a generated message type normally
+ returns the JSON representation. If a message type implements this interface,
+ then the method will be called instead of the regular
+ JSON formatting code, but only when ToString() is called either on the message itself
+ or on another message which contains it. This does not affect the normal JSON formatting of
+ the message.
+
+
+ For example, if you create a proto message representing a GUID, the internal
+ representation may be a bytes field or four fixed32 fields. However, when debugging
+ it may be more convenient to see a result in the same format as provides.
+
+ This interface extends to avoid it accidentally being implemented
+ on types other than messages, where it would not be used by anything in the framework.
+
+
+
+
+ Returns a string representation of this object, for diagnostic purposes.
+
+
+ This method is called when a message is formatted as part of a
+ call. It does not affect the JSON representation used by other than
+ in calls to . While it is recommended
+ that the result is valid JSON, this is never assumed by the Protobuf library.
+
+ A string representation of this object, for diagnostic purposes.
+
+
+
+ Generic interface for a deeply cloneable type.
+
+
+
+ All generated messages implement this interface, but so do some non-message types.
+ Additionally, due to the type constraint on T in ,
+ it is simpler to keep this as a separate interface.
+
+
+ The type itself, returned by the method.
+
+
+
+ Creates a deep clone of this object.
+
+ A deep clone of this object.
+
+
+
+ Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class.
+ This interface is experiemental and is subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if the extension isn't registered in this set.
+ For a version of this method that never returns null, use
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it hasn't already been registered.
+
+
+
+
+ Sets the value of the specified extension
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified repeated extension
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ basic operations required for serialization.
+
+
+
+
+ Merges the data from the specified coded input stream with the current message.
+
+ See the user guide for precise merge semantics.
+
+
+
+
+ Writes the data to the given coded output stream.
+
+ Coded output stream to write the data to. Must not be null.
+
+
+
+ Calculates the size of this message in Protocol Buffer wire format, in bytes.
+
+ The number of bytes required to write this message
+ to a coded output stream.
+
+
+
+ Descriptor for this message. All instances are expected to return the same descriptor,
+ and for generated types this will be an explicitly-implemented member, returning the
+ same value as the static property declared on the type.
+
+
+
+
+ Generic interface for a Protocol Buffers message,
+ where the type parameter is expected to be the same type as
+ the implementation class.
+
+ The message type.
+
+
+
+ Merges the given message into this one.
+
+ See the user guide for precise merge semantics.
+ The message to merge with this one. Must not be null.
+
+
+
+ Thrown when an attempt is made to parse invalid JSON, e.g. using
+ a non-string property key, or including a redundant comma. Parsing a protocol buffer
+ message represented in JSON using can throw both this
+ exception and depending on the situation. This
+ exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException
+ is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer
+ message.
+
+
+
+
+ Thrown when a protocol message being parsed is invalid in some way,
+ e.g. it contains a malformed varint or a negative byte length.
+
+
+
+
+ Creates an exception for an error condition of an invalid tag being encountered.
+
+
+
+
+ Reflection-based converter from messages to JSON.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON formatting working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ The JSON representation of the first 160 characters of Unicode.
+ Empty strings are replaced by the static constructor.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The formatted message.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The TextWriter to write the formatted message to.
+ The formatted message.
+
+
+
+ Converts a message to JSON for diagnostic purposes with no extra context.
+
+
+
+ This differs from calling on the default JSON
+ formatter in its handling of . As no type registry is available
+ in calls, the normal way of resolving the type of
+ an Any message cannot be applied. Instead, a JSON property named @value
+ is included with the base64 data from the property of the message.
+
+ The value returned by this method is only designed to be used for diagnostic
+ purposes. It may not be parsable by , and may not be parsable
+ by other Protocol Buffer implementations.
+
+ The message to format for diagnostic purposes.
+ The diagnostic-only JSON representation of the message
+
+
+
+ Determines whether or not a field value should be serialized according to the field,
+ its value in the message, and the settings of this formatter.
+
+
+
+
+ Writes a single value to the given writer as JSON. Only types understood by
+ Protocol Buffers can be written in this way. This method is only exposed for
+ advanced use cases; most users should be using
+ or .
+
+ The writer to write the value to. Must not be null.
+ The value to write. May be null.
+
+
+
+ Central interception point for well-known type formatting. Any well-known types which
+ don't need special handling can fall back to WriteMessage. We avoid assuming that the
+ values are using the embedded well-known types, in order to allow for dynamic messages
+ in the future.
+
+
+
+
+ Writes a string (including leading and trailing double quotes) to a builder, escaping as required.
+
+
+ Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc.
+
+
+
+
+ Settings controlling JSON formatting.
+
+
+
+
+ Default settings, as used by
+
+
+
+
+ Whether fields which would otherwise not be included in the formatted data
+ should be formatted even when the value is not present, or has the default value.
+ This option only affects fields which don't support "presence" (e.g.
+ singular non-optional proto3 primitive fields).
+
+
+
+
+ The type registry used to format messages.
+
+
+
+
+ Whether to format enums as ints. Defaults to false.
+
+
+
+
+ Whether to use the original proto field names as defined in the .proto file. Defaults to false.
+
+
+
+
+ Creates a new object with the specified formatting of default values
+ and an empty type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified formatting of default values
+ and type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified parameters.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages. TypeRegistry.Empty will be used if it is null.
+ true to format the enums as integers; false to format enums as enum names.
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Creates a new object with the specified formatting of default values and the current settings.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified type registry and the current settings.
+
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified enums formatting option and the current settings.
+
+ true to format the enums as integers; false to format enums as enum names.
+
+
+
+ Creates a new object with the specified field name formatting option and the current settings.
+
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Reflection-based converter from JSON to messages.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON parsing working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Parses and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ The JSON to parse.
+
+
+
+ Parses JSON read from and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ Reader providing the JSON to parse.
+
+
+
+ Merges the given message using data from the given tokenizer. In most cases, the next
+ token should be a "start object" token, but wrapper types and nullity can invalidate
+ that assumption. This is implemented as an LL(1) recursive descent parser over the stream
+ of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the
+ tokenizer performing that validation - but not every token stream is valid "protobuf JSON".
+
+
+
+
+ Parses into a new message.
+
+ The type of message to create.
+ The JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ The type of message to create.
+ Reader providing the JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses into a new message.
+
+ The JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ Reader providing the JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new instance of the message type for the given field.
+
+
+
+
+ Checks that any infinite/NaN values originated from the correct text.
+ This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the
+ way that Mono parses out-of-range values as infinity.
+
+
+
+
+ Settings controlling JSON parsing.
+
+
+
+
+ Default settings, as used by . This has the same default
+ recursion limit as , and an empty type registry.
+
+
+
+
+ The maximum depth of messages to parse. Note that this limit only applies to parsing
+ messages, not collections - so a message within a collection within a message only counts as
+ depth 2, not 3.
+
+
+
+
+ The type registry used to parse messages.
+
+
+
+
+ Whether the parser should ignore unknown fields (true) or throw an exception when
+ they are encountered (false).
+
+
+
+
+ Creates a new object with the specified recursion limit.
+
+ The maximum depth of messages to parse
+
+
+
+ Creates a new object with the specified recursion limit and type registry.
+
+ The maximum depth of messages to parse
+ The type registry used to parse messages
+
+
+
+ Creates a new object set to either ignore unknown fields, or throw an exception
+ when unknown fields are encountered.
+
+ true if unknown fields should be ignored when parsing; false to throw an exception.
+
+
+
+ Creates a new object based on this one, but with the specified recursion limit.
+
+ The new recursion limit.
+
+
+
+ Creates a new object based on this one, but with the specified type registry.
+
+ The new type registry. Must not be null.
+
+
+
+ Simple but strict JSON tokenizer, rigidly following RFC 7159.
+
+
+
+ This tokenizer is stateful, and only returns "useful" tokens - names, values etc.
+ It does not create tokens for the separator between names and values, or for the comma
+ between values. It validates the token stream as it goes - so callers can assume that the
+ tokens it produces are appropriate. For example, it would never produce "start object, end array."
+
+ Implementation details: the base class handles single token push-back and
+ Not thread-safe.
+
+
+
+
+ Creates a tokenizer that reads from the given text reader.
+
+
+
+
+ Creates a tokenizer that first replays the given list of tokens, then continues reading
+ from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back
+ on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was
+ created for the sake of Any parsing.
+
+
+
+
+ Returns the depth of the stack, purely in objects (not collections).
+ Informally, this is the number of remaining unclosed '{' characters we have.
+
+
+
+
+ Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream,
+ after which point Next() should not be called again.
+
+ This implementation provides single-token buffering, and calls if there is no buffered token.
+ The next token in the stream. This is never null.
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Returns the next JSON token in the stream, when requested by the base class. (The method delegates
+ to this if it doesn't have a buffered token.)
+
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Skips the value we're about to read. This must only be called immediately after reading a property name.
+ If the value is an object or an array, the complete object/array is skipped.
+
+
+
+
+ Tokenizer which first exhausts a list of tokens, then consults another tokenizer.
+
+
+
+
+ Tokenizer which does all the *real* work of parsing JSON.
+
+
+
+
+ This method essentially just loops through characters skipping whitespace, validating and
+ changing state (e.g. from ObjectBeforeColon to ObjectAfterColon)
+ until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point
+ it returns the token. Although the method is large, it would be relatively hard to break down further... most
+ of it is the large switch statement, which sometimes returns and sometimes doesn't.
+
+
+
+
+ Reads a string token. It is assumed that the opening " has already been read.
+
+
+
+
+ Reads an escaped character. It is assumed that the leading backslash has already been read.
+
+
+
+
+ Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read.
+
+
+
+
+ Consumes a text-only literal, throwing an exception if the read text doesn't match it.
+ It is assumed that the first letter of the literal has already been read.
+
+
+
+
+ Validates that we're in a valid state to read a value (using the given error prefix if necessary)
+ and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty.
+
+
+
+
+ Pops the top-most container, and sets the state to the appropriate one for the end of a value
+ in the parent container.
+
+
+
+
+ Possible states of the tokenizer.
+
+
+ This is a flags enum purely so we can simply and efficiently represent a set of valid states
+ for checking.
+
+ Each is documented with an example,
+ where ^ represents the current position within the text stream. The examples all use string values,
+ but could be any value, including nested objects/arrays.
+ The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects).
+ Any additional notional state of "AfterValue" indicates that a value has been completed, at which
+ point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue.
+
+
+ These states were derived manually by reading RFC 7159 carefully.
+
+
+
+
+
+ ^ { "foo": "bar" }
+ Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue"
+
+
+
+
+ { "foo": "bar" } ^
+ After the value in a document. Next states: ReaderExhausted
+
+
+
+
+ { "foo": "bar" } ^ (and already read to the end of the reader)
+ Terminal state.
+
+
+
+
+ { ^ "foo": "bar" }
+ Before the *first* property in an object.
+ Next states:
+ "AfterValue" (empty object)
+ ObjectBeforeColon (read a name)
+
+
+
+
+ { "foo" ^ : "bar", "x": "y" }
+ Next state: ObjectAfterColon
+
+
+
+
+ { "foo" : ^ "bar", "x": "y" }
+ Before any property other than the first in an object.
+ (Equivalently: after any property in an object)
+ Next states:
+ "AfterValue" (value is simple)
+ ObjectStart (value is object)
+ ArrayStart (value is array)
+
+
+
+
+ { "foo" : "bar" ^ , "x" : "y" }
+ At the end of a property, so expecting either a comma or end-of-object
+ Next states: ObjectAfterComma or "AfterValue"
+
+
+
+
+ { "foo":"bar", ^ "x":"y" }
+ Read the comma after the previous property, so expecting another property.
+ This is like ObjectStart, but closing brace isn't valid here
+ Next state: ObjectBeforeColon.
+
+
+
+
+ [ ^ "foo", "bar" ]
+ Before the *first* value in an array.
+ Next states:
+ "AfterValue" (read a value)
+ "AfterValue" (end of array; will pop stack)
+
+
+
+
+ [ "foo" ^ , "bar" ]
+ After any value in an array, so expecting either a comma or end-of-array
+ Next states: ArrayAfterComma or "AfterValue"
+
+
+
+
+ [ "foo", ^ "bar" ]
+ After a comma in an array, so there *must* be another value (simple or complex).
+ Next states: "AfterValue" (simple value), StartObject, StartArray
+
+
+
+
+ Wrapper around a text reader allowing small amounts of buffering and location handling.
+
+
+
+
+ The buffered next character, if we have one.
+
+
+
+
+ Returns the next character in the stream, or null if we have reached the end.
+
+
+
+
+
+ Creates a new exception appropriate for the current state of the reader.
+
+
+
+
+ Stream implementation which proxies another stream, only allowing a certain amount
+ of data to be read. Note that this is only used to read delimited streams, so it
+ doesn't attempt to implement everything.
+
+
+
+
+ Extension methods on and .
+
+
+
+
+ Merges data from the given byte array into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given byte array slice into an existing message.
+
+ The message to merge the data into.
+ The data containing the slice to merge, which must be protobuf-encoded binary data.
+ The offset of the slice to merge.
+ The length of the slice to merge.
+
+
+
+ Merges data from the given byte string into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given stream into an existing message.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given span into an existing message.
+
+ The message to merge the data into.
+ Span containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges length-delimited data from the given stream into an existing message.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Converts the given message into a byte array in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte array.
+
+
+
+ Writes the given message data to the given stream in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the length and then data of the given message to a stream.
+
+ The message to write.
+ The output stream to write to.
+
+
+
+ Converts the given message into a byte string in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte string.
+
+
+
+ Writes the given message data to the given buffer writer in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the given message data to the given span in protobuf encoding.
+ The size of the destination span needs to fit the serialized size
+ of the message exactly, otherwise an exception is thrown.
+
+ The message to write to the stream.
+ The span to write to. Size must match size of the message exactly.
+
+
+
+ Checks if all required fields in a message have values set. For proto3 messages, this returns true
+
+
+
+
+ A general message parser, typically used by reflection-based code as all the methods
+ return simple .
+
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ A parser for a specific message type.
+
+
+
+ This delegates most behavior to the
+ implementation within the original type, but
+ provides convenient overloads to parse from a variety of sources.
+
+
+ Most applications will never need to create their own instances of this type;
+ instead, use the static Parser property of a generated message type to obtain a
+ parser for that type.
+
+
+ The type of message to be parsed.
+
+
+
+ Creates a new parser.
+
+
+ The factory method is effectively an optimization over using a generic constraint
+ to require a parameterless constructor: delegates are significantly faster to execute.
+
+ Function to invoke when a new, empty message is required.
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the
+ extensionByNumber table in ExtensionRegistry.
+
+
+
+
+ An opaque struct that represents the current parsing state and is passed along
+ as the parsing proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Initialize a , building all from defaults and
+ the given .
+
+
+
+
+ Initialize a using existing , e.g. from .
+
+
+
+
+ Creates a ParseContext instance from CodedInputStream.
+ WARNING: internally this copies the CodedInputStream's state, so after done with the ParseContext,
+ the CodedInputStream's state needs to be updated.
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the input.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of input".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputReader; it may be the end of the logical input
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of input. (0 is never a valid tag.)
+
+
+
+ Reads a double field from the input.
+
+
+
+
+ Reads a float field from the input.
+
+
+
+
+ Reads a uint64 field from the input.
+
+
+
+
+ Reads an int64 field from the input.
+
+
+
+
+ Reads an int32 field from the input.
+
+
+
+
+ Reads a fixed64 field from the input.
+
+
+
+
+ Reads a fixed32 field from the input.
+
+
+
+
+ Reads a bool field from the input.
+
+
+
+
+ Reads a string field from the input.
+
+
+
+
+ Reads an embedded message field value from the input.
+
+
+
+
+ Reads an embedded group field from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a uint32 field value from the input.
+
+
+
+
+ Reads an enum field value from the input.
+
+
+
+
+ Reads an sfixed32 field value from the input.
+
+
+
+
+ Reads an sfixed64 field value from the input.
+
+
+
+
+ Reads an sint32 field value from the input.
+
+
+
+
+ Reads an sint64 field value from the input.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ The position within the current buffer (i.e. the next byte to read)
+
+
+
+
+ Size of the current buffer
+
+
+
+
+ If we are currently inside a length-delimited block, this is the number of
+ bytes in the buffer that are still available once we leave the delimited block.
+
+
+
+
+ The absolute position of the end of the current length-delimited block (including totalBytesRetired)
+
+
+
+
+ The total number of consumed before the start of the current buffer. The
+ total bytes read up to the current position can be computed as
+ totalBytesRetired + bufferPos.
+
+
+
+
+ The last tag we read. 0 indicates we've read to the end of the stream
+ (or haven't read anything yet).
+
+
+
+
+ The next tag, used to store the value read by PeekTag.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Primitives for parsing protobuf wire format.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Parses the next tag.
+ If the end of logical stream was reached, an invalid tag of 0 is returned.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Parses a raw varint.
+
+
+
+
+ Parses a raw Varint. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Parses a 32-bit little-endian integer.
+
+
+
+
+ Parses a 64-bit little-endian integer.
+
+
+
+
+ Parses a double value.
+
+
+
+
+ Parses a float value.
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads and discards bytes.
+
+ the end of the stream
+ or the current limit was reached
+
+
+
+ Reads a string field value from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a UTF-8 string from the next "length" bytes.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a string assuming that it is spread across multiple spans in a .
+
+
+
+
+ Validates that the specified size doesn't exceed the current limit. If it does then remaining bytes
+ are skipped and an error is thrown.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Decode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 32 bits to be varint encoded, thus always taking
+ 5 bytes on the wire.)
+
+
+
+
+ Decode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse.
+ When parsing from a Stream this can return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse
+ in the underlying data source.
+ When parsing from a Stream this will return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Read raw bytes of the specified length into a span. The amount of data available and the current limit should
+ be checked before calling this method.
+
+
+
+
+ Reading and skipping messages / groups
+
+
+
+
+ Skip a group.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Fast parsing primitives for wrapper types
+
+
+
+
+ Helper methods for throwing exceptions when preconditions are not met.
+
+
+ This class is used internally and by generated code; it is not particularly
+ expected to be used from application code, although nothing prevents it
+ from being used that way.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+ This is equivalent to but without the type parameter
+ constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
+ with a value type - but it gets in the way if either you want to use it with a nullable
+ value type, or you want to use it with an unconstrained type parameter.
+
+
+
+
+ Container for a set of custom options specified within a message, field etc.
+
+
+
+ This type is publicly immutable, but internally mutable. It is only populated
+ by the descriptor parsing code - by the time any user code is able to see an instance,
+ it will be fully initialized.
+
+
+ If an option is requested using the incorrect method, an answer may still be returned: all
+ of the numeric types are represented internally using 64-bit integers, for example. It is up to
+ the caller to ensure that they make the appropriate method call for the option they're interested in.
+ Note that enum options are simply stored as integers, so the value should be fetched using
+ and then cast appropriately.
+
+
+ Repeated options are currently not supported. Asking for a single value of an option
+ which was actually repeated will return the last value, except for message types where
+ all the set values are merged together.
+
+
+
+
+
+ Retrieves a Boolean value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 32-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 64-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a string value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a bytes value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a message value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+ Holder for reflection information generated from google/protobuf/descriptor.proto
+
+
+ File descriptor for google/protobuf/descriptor.proto
+
+
+
+ The protocol compiler can output a FileDescriptorSet containing the .proto
+ files it parses.
+
+
+
+ Field number for the "file" field.
+
+
+
+ Describes a complete .proto file.
+
+
+
+ Field number for the "name" field.
+
+
+
+ file name, relative to root of source tree
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "package" field.
+
+
+
+ e.g. "foo", "foo.bar", etc.
+
+
+
+ Gets whether the "package" field is set
+
+
+ Clears the value of the "package" field
+
+
+ Field number for the "dependency" field.
+
+
+
+ Names of files imported by this file.
+
+
+
+ Field number for the "public_dependency" field.
+
+
+
+ Indexes of the public imported files in the dependency list above.
+
+
+
+ Field number for the "weak_dependency" field.
+
+
+
+ Indexes of the weak imported files in the dependency list.
+ For Google-internal migration only. Do not use.
+
+
+
+ Field number for the "message_type" field.
+
+
+
+ All top-level definitions in this file.
+
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "service" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "source_code_info" field.
+
+
+
+ This field contains optional information about the original source code.
+ You may safely remove this entire field without harming runtime
+ functionality of the descriptors -- the information is needed only by
+ development tools.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The syntax of the proto file.
+ The supported values are "proto2" and "proto3".
+
+
+
+ Gets whether the "syntax" field is set
+
+
+ Clears the value of the "syntax" field
+
+
+
+ Describes a message type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "field" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "nested_type" field.
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "extension_range" field.
+
+
+ Field number for the "oneof_decl" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved field names, which may not be used by fields in the same message.
+ A given name may only be reserved once.
+
+
+
+ Container for nested types declared in the DescriptorProto message type.
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "options" field.
+
+
+
+ Range of reserved tag numbers. Reserved tag numbers may not be used by
+ fields or extension ranges in the same message. Reserved ranges may
+ not overlap.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+
+ Describes a field within a message.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "label" field.
+
+
+ Gets whether the "label" field is set
+
+
+ Clears the value of the "label" field
+
+
+ Field number for the "type" field.
+
+
+
+ If type_name is set, this need not be set. If both this and type_name
+ are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "type_name" field.
+
+
+
+ For message and enum types, this is the name of the type. If the name
+ starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
+ rules are used to find the type (i.e. first the nested types within this
+ message are searched, then within the parent, on up to the root
+ namespace).
+
+
+
+ Gets whether the "type_name" field is set
+
+
+ Clears the value of the "type_name" field
+
+
+ Field number for the "extendee" field.
+
+
+
+ For extensions, this is the name of the type being extended. It is
+ resolved in the same manner as type_name.
+
+
+
+ Gets whether the "extendee" field is set
+
+
+ Clears the value of the "extendee" field
+
+
+ Field number for the "default_value" field.
+
+
+
+ For numeric types, contains the original text representation of the value.
+ For booleans, "true" or "false".
+ For strings, contains the default text contents (not escaped in any way).
+ For bytes, contains the C escaped value. All bytes >= 128 are escaped.
+
+
+
+ Gets whether the "default_value" field is set
+
+
+ Clears the value of the "default_value" field
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ If set, gives the index of a oneof in the containing type's oneof_decl
+ list. This field is a member of that oneof.
+
+
+
+ Gets whether the "oneof_index" field is set
+
+
+ Clears the value of the "oneof_index" field
+
+
+ Field number for the "json_name" field.
+
+
+
+ JSON name of this field. The value is set by protocol compiler. If the
+ user has set a "json_name" option on this field, that option's value
+ will be used. Otherwise, it's deduced from the field's name by converting
+ it to camelCase.
+
+
+
+ Gets whether the "json_name" field is set
+
+
+ Clears the value of the "json_name" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "proto3_optional" field.
+
+
+
+ If true, this is a proto3 "optional". When a proto3 field is optional, it
+ tracks presence regardless of field type.
+
+ When proto3_optional is true, this field must be belong to a oneof to
+ signal to old proto3 clients that presence is tracked for this field. This
+ oneof is known as a "synthetic" oneof, and this field must be its sole
+ member (each proto3 optional field gets its own synthetic oneof). Synthetic
+ oneofs exist in the descriptor only, and do not generate any API. Synthetic
+ oneofs must be ordered after all "real" oneofs.
+
+ For message fields, proto3_optional doesn't create any semantic change,
+ since non-repeated message fields always track presence. However it still
+ indicates the semantic detail of whether the user wrote "optional" or not.
+ This can be useful for round-tripping the .proto file. For consistency we
+ give message fields a synthetic oneof also, even though it is not required
+ to track presence. This is especially important because the parser can't
+ tell if a field is a message or an enum, so it must always create a
+ synthetic oneof.
+
+ Proto2 optional fields do not set this flag, because they already indicate
+ optional with `LABEL_OPTIONAL`.
+
+
+
+ Gets whether the "proto3_optional" field is set
+
+
+ Clears the value of the "proto3_optional" field
+
+
+ Container for nested types declared in the FieldDescriptorProto message type.
+
+
+
+ 0 is reserved for errors.
+ Order is weird for historical reasons.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
+ negative values are likely.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
+ negative values are likely.
+
+
+
+
+ Tag-delimited aggregate.
+ Group type is deprecated and not supported in proto3. However, Proto3
+ implementations should still be able to parse the group wire format and
+ treat group fields as unknown fields.
+
+
+
+
+ Length-delimited aggregate.
+
+
+
+
+ New in version 2.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ 0 is reserved for errors
+
+
+
+
+ Describes a oneof.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes an enum type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+
+ Range of reserved numeric values. Reserved numeric values may not be used
+ by enum values in the same enum declaration. Reserved ranges may not
+ overlap.
+
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved enum value names, which may not be reused. A given name may only
+ be reserved once.
+
+
+
+ Container for nested types declared in the EnumDescriptorProto message type.
+
+
+
+ Range of reserved numeric values. Reserved values may not be used by
+ entries in the same enum. Reserved ranges may not overlap.
+
+ Note that this is distinct from DescriptorProto.ReservedRange in that it
+ is inclusive such that it can appropriately represent the entire int32
+ domain.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Describes a value within an enum.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "method" field.
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a method of a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "input_type" field.
+
+
+
+ Input and output type names. These are resolved in the same way as
+ FieldDescriptorProto.type_name, but must refer to a message type.
+
+
+
+ Gets whether the "input_type" field is set
+
+
+ Clears the value of the "input_type" field
+
+
+ Field number for the "output_type" field.
+
+
+ Gets whether the "output_type" field is set
+
+
+ Clears the value of the "output_type" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "client_streaming" field.
+
+
+
+ Identifies if client streams multiple client messages
+
+
+
+ Gets whether the "client_streaming" field is set
+
+
+ Clears the value of the "client_streaming" field
+
+
+ Field number for the "server_streaming" field.
+
+
+
+ Identifies if server streams multiple server messages
+
+
+
+ Gets whether the "server_streaming" field is set
+
+
+ Clears the value of the "server_streaming" field
+
+
+ Field number for the "java_package" field.
+
+
+
+ Sets the Java package where classes generated from this .proto will be
+ placed. By default, the proto package is used, but this is often
+ inappropriate because proto packages do not normally start with backwards
+ domain names.
+
+
+
+ Gets whether the "java_package" field is set
+
+
+ Clears the value of the "java_package" field
+
+
+ Field number for the "java_outer_classname" field.
+
+
+
+ Controls the name of the wrapper Java class generated for the .proto file.
+ That class will always contain the .proto file's getDescriptor() method as
+ well as any top-level extensions defined in the .proto file.
+ If java_multiple_files is disabled, then all the other classes from the
+ .proto file will be nested inside the single wrapper outer class.
+
+
+
+ Gets whether the "java_outer_classname" field is set
+
+
+ Clears the value of the "java_outer_classname" field
+
+
+ Field number for the "java_multiple_files" field.
+
+
+
+ If enabled, then the Java code generator will generate a separate .java
+ file for each top-level message, enum, and service defined in the .proto
+ file. Thus, these types will *not* be nested inside the wrapper class
+ named by java_outer_classname. However, the wrapper class will still be
+ generated to contain the file's getDescriptor() method as well as any
+ top-level extensions defined in the file.
+
+
+
+ Gets whether the "java_multiple_files" field is set
+
+
+ Clears the value of the "java_multiple_files" field
+
+
+ Field number for the "java_generate_equals_and_hash" field.
+
+
+
+ This option does nothing.
+
+
+
+ Gets whether the "java_generate_equals_and_hash" field is set
+
+
+ Clears the value of the "java_generate_equals_and_hash" field
+
+
+ Field number for the "java_string_check_utf8" field.
+
+
+
+ If set true, then the Java2 code generator will generate code that
+ throws an exception whenever an attempt is made to assign a non-UTF-8
+ byte sequence to a string field.
+ Message reflection will do the same.
+ However, an extension field still accepts non-UTF-8 byte sequences.
+ This option has no effect on when used with the lite runtime.
+
+
+
+ Gets whether the "java_string_check_utf8" field is set
+
+
+ Clears the value of the "java_string_check_utf8" field
+
+
+ Field number for the "optimize_for" field.
+
+
+ Gets whether the "optimize_for" field is set
+
+
+ Clears the value of the "optimize_for" field
+
+
+ Field number for the "go_package" field.
+
+
+
+ Sets the Go package where structs generated from this .proto will be
+ placed. If omitted, the Go package will be derived from the following:
+ - The basename of the package import path, if provided.
+ - Otherwise, the package statement in the .proto file, if present.
+ - Otherwise, the basename of the .proto file, without extension.
+
+
+
+ Gets whether the "go_package" field is set
+
+
+ Clears the value of the "go_package" field
+
+
+ Field number for the "cc_generic_services" field.
+
+
+
+ Should generic services be generated in each language? "Generic" services
+ are not specific to any particular RPC system. They are generated by the
+ main code generators in each language (without additional plugins).
+ Generic services were the only kind of service generation supported by
+ early versions of google.protobuf.
+
+ Generic services are now considered deprecated in favor of using plugins
+ that generate code specific to your particular RPC system. Therefore,
+ these default to false. Old code which depends on generic services should
+ explicitly set them to true.
+
+
+
+ Gets whether the "cc_generic_services" field is set
+
+
+ Clears the value of the "cc_generic_services" field
+
+
+ Field number for the "java_generic_services" field.
+
+
+ Gets whether the "java_generic_services" field is set
+
+
+ Clears the value of the "java_generic_services" field
+
+
+ Field number for the "py_generic_services" field.
+
+
+ Gets whether the "py_generic_services" field is set
+
+
+ Clears the value of the "py_generic_services" field
+
+
+ Field number for the "php_generic_services" field.
+
+
+ Gets whether the "php_generic_services" field is set
+
+
+ Clears the value of the "php_generic_services" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this file deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for everything in the file, or it will be completely ignored; in the very
+ least, this is a formalization for deprecating files.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "cc_enable_arenas" field.
+
+
+
+ Enables the use of arenas for the proto messages in this file. This applies
+ only to generated classes for C++.
+
+
+
+ Gets whether the "cc_enable_arenas" field is set
+
+
+ Clears the value of the "cc_enable_arenas" field
+
+
+ Field number for the "objc_class_prefix" field.
+
+
+
+ Sets the objective c class prefix which is prepended to all objective c
+ generated classes from this .proto. There is no default.
+
+
+
+ Gets whether the "objc_class_prefix" field is set
+
+
+ Clears the value of the "objc_class_prefix" field
+
+
+ Field number for the "csharp_namespace" field.
+
+
+
+ Namespace for generated classes; defaults to the package.
+
+
+
+ Gets whether the "csharp_namespace" field is set
+
+
+ Clears the value of the "csharp_namespace" field
+
+
+ Field number for the "swift_prefix" field.
+
+
+
+ By default Swift generators will take the proto package and CamelCase it
+ replacing '.' with underscore and use that to prefix the types/symbols
+ defined. When this options is provided, they will use this value instead
+ to prefix the types/symbols defined.
+
+
+
+ Gets whether the "swift_prefix" field is set
+
+
+ Clears the value of the "swift_prefix" field
+
+
+ Field number for the "php_class_prefix" field.
+
+
+
+ Sets the php class prefix which is prepended to all php generated classes
+ from this .proto. Default is empty.
+
+
+
+ Gets whether the "php_class_prefix" field is set
+
+
+ Clears the value of the "php_class_prefix" field
+
+
+ Field number for the "php_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated classes. Default
+ is empty. When this option is empty, the package name will be used for
+ determining the namespace.
+
+
+
+ Gets whether the "php_namespace" field is set
+
+
+ Clears the value of the "php_namespace" field
+
+
+ Field number for the "php_metadata_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated metadata classes.
+ Default is empty. When this option is empty, the proto file name will be
+ used for determining the namespace.
+
+
+
+ Gets whether the "php_metadata_namespace" field is set
+
+
+ Clears the value of the "php_metadata_namespace" field
+
+
+ Field number for the "ruby_package" field.
+
+
+
+ Use this option to change the package of ruby generated classes. Default
+ is empty. When this option is not set, the package name will be used for
+ determining the ruby package.
+
+
+
+ Gets whether the "ruby_package" field is set
+
+
+ Clears the value of the "ruby_package" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here.
+ See the documentation for the "Options" section above.
+
+
+
+ Container for nested types declared in the FileOptions message type.
+
+
+
+ Generated classes can be optimized for speed or code size.
+
+
+
+
+ Generate complete code for parsing, serialization,
+
+
+
+
+ etc.
+
+
+
+
+ Generate code using MessageLite and the lite runtime.
+
+
+
+ Field number for the "message_set_wire_format" field.
+
+
+
+ Set true to use the old proto1 MessageSet wire format for extensions.
+ This is provided for backwards-compatibility with the MessageSet wire
+ format. You should not use this for any other reason: It's less
+ efficient, has fewer features, and is more complicated.
+
+ The message must be defined exactly as follows:
+ message Foo {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+ }
+ Note that the message cannot have any defined fields; MessageSets only
+ have extensions.
+
+ All extensions of your type must be singular messages; e.g. they cannot
+ be int32s, enums, or repeated messages.
+
+ Because this is an option, the above two restrictions are not enforced by
+ the protocol compiler.
+
+
+
+ Gets whether the "message_set_wire_format" field is set
+
+
+ Clears the value of the "message_set_wire_format" field
+
+
+ Field number for the "no_standard_descriptor_accessor" field.
+
+
+
+ Disables the generation of the standard "descriptor()" accessor, which can
+ conflict with a field of the same name. This is meant to make migration
+ from proto1 easier; new code should avoid fields named "descriptor".
+
+
+
+ Gets whether the "no_standard_descriptor_accessor" field is set
+
+
+ Clears the value of the "no_standard_descriptor_accessor" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this message deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the message, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating messages.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "map_entry" field.
+
+
+
+ Whether the message is an automatically generated map entry type for the
+ maps field.
+
+ For maps fields:
+ map<KeyType, ValueType> map_field = 1;
+ The parsed descriptor looks like:
+ message MapFieldEntry {
+ option map_entry = true;
+ optional KeyType key = 1;
+ optional ValueType value = 2;
+ }
+ repeated MapFieldEntry map_field = 1;
+
+ Implementations may choose not to generate the map_entry=true message, but
+ use a native map in the target language to hold the keys and values.
+ The reflection APIs in such implementations still need to work as
+ if the field is a repeated message field.
+
+ NOTE: Do not set the option in .proto files. Always use the maps syntax
+ instead. The option should only be implicitly set by the proto compiler
+ parser.
+
+
+
+ Gets whether the "map_entry" field is set
+
+
+ Clears the value of the "map_entry" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "ctype" field.
+
+
+
+ The ctype option instructs the C++ code generator to use a different
+ representation of the field than it normally would. See the specific
+ options below. This option is not yet implemented in the open source
+ release -- sorry, we'll try to include it in a future version!
+
+
+
+ Gets whether the "ctype" field is set
+
+
+ Clears the value of the "ctype" field
+
+
+ Field number for the "packed" field.
+
+
+
+ The packed option can be enabled for repeated primitive fields to enable
+ a more efficient representation on the wire. Rather than repeatedly
+ writing the tag and type for each element, the entire array is encoded as
+ a single length-delimited blob. In proto3, only explicit setting it to
+ false will avoid using packed encoding.
+
+
+
+ Gets whether the "packed" field is set
+
+
+ Clears the value of the "packed" field
+
+
+ Field number for the "jstype" field.
+
+
+
+ The jstype option determines the JavaScript type used for values of the
+ field. The option is permitted only for 64 bit integral and fixed types
+ (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
+ is represented as JavaScript string, which avoids loss of precision that
+ can happen when a large value is converted to a floating point JavaScript.
+ Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
+ use the JavaScript "number" type. The behavior of the default option
+ JS_NORMAL is implementation dependent.
+
+ This option is an enum to permit additional types to be added, e.g.
+ goog.math.Integer.
+
+
+
+ Gets whether the "jstype" field is set
+
+
+ Clears the value of the "jstype" field
+
+
+ Field number for the "lazy" field.
+
+
+
+ Should this field be parsed lazily? Lazy applies only to message-type
+ fields. It means that when the outer message is initially parsed, the
+ inner message's contents will not be parsed but instead stored in encoded
+ form. The inner message will actually be parsed when it is first accessed.
+
+ This is only a hint. Implementations are free to choose whether to use
+ eager or lazy parsing regardless of the value of this option. However,
+ setting this option true suggests that the protocol author believes that
+ using lazy parsing on this field is worth the additional bookkeeping
+ overhead typically needed to implement it.
+
+ This option does not affect the public interface of any generated code;
+ all method signatures remain the same. Furthermore, thread-safety of the
+ interface is not affected by this option; const methods remain safe to
+ call from multiple threads concurrently, while non-const methods continue
+ to require exclusive access.
+
+ Note that implementations may choose not to check required fields within
+ a lazy sub-message. That is, calling IsInitialized() on the outer message
+ may return true even if the inner message has missing required fields.
+ This is necessary because otherwise the inner message would have to be
+ parsed in order to perform the check, defeating the purpose of lazy
+ parsing. An implementation which chooses not to check required fields
+ must be consistent about it. That is, for any particular sub-message, the
+ implementation must either *always* check its required fields, or *never*
+ check its required fields, regardless of whether or not the message has
+ been parsed.
+
+ As of 2021, lazy does no correctness checks on the byte stream during
+ parsing. This may lead to crashes if and when an invalid byte stream is
+ finally parsed upon access.
+
+ TODO(b/211906113): Enable validation on lazy fields.
+
+
+
+ Gets whether the "lazy" field is set
+
+
+ Clears the value of the "lazy" field
+
+
+ Field number for the "unverified_lazy" field.
+
+
+
+ unverified_lazy does no correctness checks on the byte stream. This should
+ only be used where lazy with verification is prohibitive for performance
+ reasons.
+
+
+
+ Gets whether the "unverified_lazy" field is set
+
+
+ Clears the value of the "unverified_lazy" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this field deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for accessors, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating fields.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "weak" field.
+
+
+
+ For Google-internal migration only. Do not use.
+
+
+
+ Gets whether the "weak" field is set
+
+
+ Clears the value of the "weak" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the FieldOptions message type.
+
+
+
+ Default mode.
+
+
+
+
+ Use the default type.
+
+
+
+
+ Use JavaScript strings.
+
+
+
+
+ Use JavaScript numbers.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "allow_alias" field.
+
+
+
+ Set this option to true to allow mapping different tag names to the same
+ value.
+
+
+
+ Gets whether the "allow_alias" field is set
+
+
+ Clears the value of the "allow_alias" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating enums.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum value deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum value, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating enum values.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this service deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the service, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating services.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this method deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the method, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating methods.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "idempotency_level" field.
+
+
+ Gets whether the "idempotency_level" field is set
+
+
+ Clears the value of the "idempotency_level" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the MethodOptions message type.
+
+
+
+ Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
+ or neither? HTTP based RPC implementation may choose GET verb for safe
+ methods, and PUT verb for idempotent methods instead of the default POST.
+
+
+
+
+ implies idempotent
+
+
+
+
+ idempotent, but may have side effects
+
+
+
+
+ A message representing a option the parser does not recognize. This only
+ appears in options protos created by the compiler::Parser class.
+ DescriptorPool resolves these when building Descriptor objects. Therefore,
+ options protos in descriptor objects (e.g. returned by Descriptor::options(),
+ or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
+ in them.
+
+
+
+ Field number for the "name" field.
+
+
+ Field number for the "identifier_value" field.
+
+
+
+ The value of the uninterpreted option, in whatever type the tokenizer
+ identified it as during parsing. Exactly one of these should be set.
+
+
+
+ Gets whether the "identifier_value" field is set
+
+
+ Clears the value of the "identifier_value" field
+
+
+ Field number for the "positive_int_value" field.
+
+
+ Gets whether the "positive_int_value" field is set
+
+
+ Clears the value of the "positive_int_value" field
+
+
+ Field number for the "negative_int_value" field.
+
+
+ Gets whether the "negative_int_value" field is set
+
+
+ Clears the value of the "negative_int_value" field
+
+
+ Field number for the "double_value" field.
+
+
+ Gets whether the "double_value" field is set
+
+
+ Clears the value of the "double_value" field
+
+
+ Field number for the "string_value" field.
+
+
+ Gets whether the "string_value" field is set
+
+
+ Clears the value of the "string_value" field
+
+
+ Field number for the "aggregate_value" field.
+
+
+ Gets whether the "aggregate_value" field is set
+
+
+ Clears the value of the "aggregate_value" field
+
+
+ Container for nested types declared in the UninterpretedOption message type.
+
+
+
+ The name of the uninterpreted option. Each string represents a segment in
+ a dot-separated name. is_extension is true iff a segment represents an
+ extension (denoted with parentheses in options specs in .proto files).
+ E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
+ "foo.(bar.baz).moo".
+
+
+
+ Field number for the "name_part" field.
+
+
+ Gets whether the "name_part" field is set
+
+
+ Clears the value of the "name_part" field
+
+
+ Field number for the "is_extension" field.
+
+
+ Gets whether the "is_extension" field is set
+
+
+ Clears the value of the "is_extension" field
+
+
+
+ Encapsulates information about the original source file from which a
+ FileDescriptorProto was generated.
+
+
+
+ Field number for the "location" field.
+
+
+
+ A Location identifies a piece of source code in a .proto file which
+ corresponds to a particular definition. This information is intended
+ to be useful to IDEs, code indexers, documentation generators, and similar
+ tools.
+
+ For example, say we have a file like:
+ message Foo {
+ optional string foo = 1;
+ }
+ Let's look at just the field definition:
+ optional string foo = 1;
+ ^ ^^ ^^ ^ ^^^
+ a bc de f ghi
+ We have the following locations:
+ span path represents
+ [a,i) [ 4, 0, 2, 0 ] The whole field definition.
+ [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
+ [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
+ [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
+ [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
+
+ Notes:
+ - A location may refer to a repeated field itself (i.e. not to any
+ particular index within it). This is used whenever a set of elements are
+ logically enclosed in a single code segment. For example, an entire
+ extend block (possibly containing multiple extension definitions) will
+ have an outer location whose path refers to the "extensions" repeated
+ field without an index.
+ - Multiple locations may have the same path. This happens when a single
+ logical declaration is spread out across multiple places. The most
+ obvious example is the "extend" block again -- there may be multiple
+ extend blocks in the same scope, each of which will have the same path.
+ - A location's span is not always a subset of its parent's span. For
+ example, the "extendee" of an extension declaration appears at the
+ beginning of the "extend" block and is shared by all extensions within
+ the block.
+ - Just because a location's span is a subset of some other location's span
+ does not mean that it is a descendant. For example, a "group" defines
+ both a type and a field in a single declaration. Thus, the locations
+ corresponding to the type and field and their components will overlap.
+ - Code which tries to interpret locations should probably be designed to
+ ignore those that it doesn't understand, as more types of locations could
+ be recorded in the future.
+
+
+
+ Container for nested types declared in the SourceCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies which part of the FileDescriptorProto was defined at this
+ location.
+
+ Each element is a field number or an index. They form a path from
+ the root FileDescriptorProto to the place where the definition occurs.
+ For example, this path:
+ [ 4, 3, 2, 7, 1 ]
+ refers to:
+ file.message_type(3) // 4, 3
+ .field(7) // 2, 7
+ .name() // 1
+ This is because FileDescriptorProto.message_type has field number 4:
+ repeated DescriptorProto message_type = 4;
+ and DescriptorProto.field has field number 2:
+ repeated FieldDescriptorProto field = 2;
+ and FieldDescriptorProto.name has field number 1:
+ optional string name = 1;
+
+ Thus, the above path gives the location of a field name. If we removed
+ the last element:
+ [ 4, 3, 2, 7 ]
+ this path refers to the whole field declaration (from the beginning
+ of the label to the terminating semicolon).
+
+
+
+ Field number for the "span" field.
+
+
+
+ Always has exactly three or four elements: start line, start column,
+ end line (optional, otherwise assumed same as start line), end column.
+ These are packed into a single field for efficiency. Note that line
+ and column numbers are zero-based -- typically you will want to add
+ 1 to each before displaying to a user.
+
+
+
+ Field number for the "leading_comments" field.
+
+
+
+ If this SourceCodeInfo represents a complete declaration, these are any
+ comments appearing before and after the declaration which appear to be
+ attached to the declaration.
+
+ A series of line comments appearing on consecutive lines, with no other
+ tokens appearing on those lines, will be treated as a single comment.
+
+ leading_detached_comments will keep paragraphs of comments that appear
+ before (but not connected to) the current element. Each paragraph,
+ separated by empty lines, will be one comment element in the repeated
+ field.
+
+ Only the comment content is provided; comment markers (e.g. //) are
+ stripped out. For block comments, leading whitespace and an asterisk
+ will be stripped from the beginning of each line other than the first.
+ Newlines are included in the output.
+
+ Examples:
+
+ optional int32 foo = 1; // Comment attached to foo.
+ // Comment attached to bar.
+ optional int32 bar = 2;
+
+ optional string baz = 3;
+ // Comment attached to baz.
+ // Another line attached to baz.
+
+ // Comment attached to moo.
+ //
+ // Another line attached to moo.
+ optional double moo = 4;
+
+ // Detached comment for corge. This is not leading or trailing comments
+ // to moo or corge because there are blank lines separating it from
+ // both.
+
+ // Detached comment for corge paragraph 2.
+
+ optional string corge = 5;
+ /* Block comment attached
+ * to corge. Leading asterisks
+ * will be removed. */
+ /* Block comment attached to
+ * grault. */
+ optional int32 grault = 6;
+
+ // ignored detached comments.
+
+
+
+ Gets whether the "leading_comments" field is set
+
+
+ Clears the value of the "leading_comments" field
+
+
+ Field number for the "trailing_comments" field.
+
+
+ Gets whether the "trailing_comments" field is set
+
+
+ Clears the value of the "trailing_comments" field
+
+
+ Field number for the "leading_detached_comments" field.
+
+
+
+ Describes the relationship between generated code and its original source
+ file. A GeneratedCodeInfo message is associated with only one generated
+ source file, but may contain references to different source .proto files.
+
+
+
+ Field number for the "annotation" field.
+
+
+
+ An Annotation connects some span of text in generated code to an element
+ of its generating .proto file.
+
+
+
+ Container for nested types declared in the GeneratedCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies the element in the original source .proto file. This field
+ is formatted the same as SourceCodeInfo.Location.path.
+
+
+
+ Field number for the "source_file" field.
+
+
+
+ Identifies the filesystem path to the original source .proto.
+
+
+
+ Gets whether the "source_file" field is set
+
+
+ Clears the value of the "source_file" field
+
+
+ Field number for the "begin" field.
+
+
+
+ Identifies the starting offset in bytes in the generated code
+ that relates to the identified object.
+
+
+
+ Gets whether the "begin" field is set
+
+
+ Clears the value of the "begin" field
+
+
+ Field number for the "end" field.
+
+
+
+ Identifies the ending offset in bytes in the generated code that
+ relates to the identified offset. The end offset should be one past
+ the last relevant byte (so the length of the text = end - begin).
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Base class for nearly all descriptors, providing common functionality.
+
+
+
+
+ The index of this descriptor within its parent descriptor.
+
+
+ This returns the index of this descriptor within its parent, for
+ this descriptor's type. (There can be duplicate values for different
+ types, e.g. one enum type with index 0 and one message type with index 0.)
+
+
+
+
+ Returns the name of the entity (field, message etc) being described.
+
+
+
+
+ The fully qualified name of the descriptor's target.
+
+
+
+
+ The file this descriptor was declared in.
+
+
+
+
+ The declaration information about the descriptor, or null if no declaration information
+ is available for this descriptor.
+
+
+ This information is typically only available for dynamically loaded descriptors,
+ for example within a protoc plugin where the full descriptors, including source info,
+ are passed to the code by protoc.
+
+
+
+
+ Retrieves the list of nested descriptors corresponding to the given field number, if any.
+ If the field is unknown or not a nested descriptor list, return null to terminate the search.
+ The default implementation returns null.
+
+
+
+
+ Provides additional information about the declaration of a descriptor,
+ such as source location and comments.
+
+
+
+
+ The descriptor this declaration relates to.
+
+
+
+
+ The start line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The start column of the declaration within the source file. This value is 1-based.
+
+
+
+
+ // The end line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The end column of the declaration within the source file. This value is 1-based, and
+ exclusive. (The final character of the declaration is on the column before this value.)
+
+
+
+
+ Comments appearing before the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing after the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing before the declaration, but separated from it by blank
+ lines. Each string represents a newline-separated paragraph of comments.
+ Leading whitespace and the comment marker ("//") are removed from each line.
+ The list is never null, but may be empty. Likewise each element is never null, but may be empty.
+
+
+
+
+ Contains lookup tables containing all the descriptors defined in a particular file.
+
+
+
+
+ Finds a symbol of the given name within the pool.
+
+ The type of symbol to look for
+ Fully-qualified name to look up
+ The symbol with the given name and type,
+ or null if the symbol doesn't exist or has the wrong type
+
+
+
+ Adds a package to the symbol tables. If a package by the same name
+ already exists, that is fine, but if some other kind of symbol
+ exists under the same name, an exception is thrown. If the package
+ has multiple components, this also adds the parent package(s).
+
+
+
+
+ Adds a symbol to the symbol table.
+
+ The symbol already existed
+ in the symbol table.
+
+
+
+ Verifies that the descriptor's name is valid (i.e. it contains
+ only letters, digits and underscores, and does not start with a digit).
+
+
+
+
+
+ Returns the field with the given number in the given descriptor,
+ or null if it can't be found.
+
+
+
+
+ Adds a field to the fieldsByNumber table.
+
+ A field with the same
+ containing type and number already exists.
+
+
+
+ Adds an enum value to the enumValuesByNumber table. If an enum value
+ with the same type and number already exists, this method does nothing.
+ (This is allowed; the first value defined with the number takes precedence.)
+
+
+
+
+ Looks up a descriptor by name, relative to some other descriptor.
+ The name may be fully-qualified (with a leading '.'), partially-qualified,
+ or unqualified. C++-like name lookup semantics are used to search for the
+ matching descriptor.
+
+
+ This isn't heavily optimized, but it's only used during cross linking anyway.
+ If it starts being used more widely, we should look at performance more carefully.
+
+
+
+
+ Internal class containing utility methods when working with descriptors.
+
+
+
+
+ Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
+ arrays.
+
+
+
+
+ Converts the given array into a read-only list, applying the specified conversion to
+ each input element.
+
+
+
+
+ Thrown when building descriptors fails because the source DescriptorProtos
+ are not valid.
+
+
+
+
+ The full name of the descriptor where the error occurred.
+
+
+
+
+ A human-readable description of the error. (The Message property
+ is made up of the descriptor's name and this description.)
+
+
+
+
+ Descriptor for an enum type in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ The CLR type for this enum. For generated code, this will be a CLR enum type.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ An unmodifiable list of defined value descriptors for this enum.
+
+
+
+
+ Finds an enum value by number. If multiple enum values have the
+ same number, this returns the first defined value with that number.
+ If there is no value for the given number, this returns null.
+
+
+
+
+ Finds an enum value by name.
+
+ The unqualified name of the value (e.g. "FOO").
+ The value's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this enum.
+
+
+
+
+ The EnumOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum option for this descriptor
+
+
+
+
+ Gets a repeated value enum option for this descriptor
+
+
+
+
+ Descriptor for a single enum value within an enum in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum value.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum value descriptor.
+
+
+
+ Returns the name of the enum value described by this object.
+
+
+
+
+ Returns the number associated with this enum value.
+
+
+
+
+ Returns the enum descriptor that this value is part of.
+
+
+
+
+ The (possibly empty) set of custom options for this enum value.
+
+
+
+
+ The EnumValueOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum value option for this descriptor
+
+
+
+
+ Gets a repeated value enum value option for this descriptor
+
+
+
+
+ A collection to simplify retrieving the descriptors of extensions in a descriptor for a message
+
+
+
+
+ Returns a readonly list of all the extensions defined in this type in
+ the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in ascending field order
+
+
+
+
+ Base class for field accessors.
+
+
+
+
+ Descriptor for a field or extension within a message in a .proto file.
+
+
+
+
+ Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension.
+
+
+
+
+ Returns the oneof containing this field, or null if it is not part of a oneof.
+
+
+
+
+ Returns the oneof containing this field if it's a "real" oneof, or null if either this
+ field is not part of a oneof, or the oneof is synthetic.
+
+
+
+
+ The effective JSON name for this field. This is usually the lower-camel-cased form of the field name,
+ but can be overridden using the json_name option in the .proto file.
+
+
+
+
+ The name of the property in the ContainingType.ClrType class.
+
+
+
+
+ Indicates whether this field supports presence, either implicitly (e.g. due to it being a message
+ type field) or explicitly via Has/Clear members. If this returns true, it is safe to call
+ and
+ on this field's accessor with a suitable message.
+
+
+
+
+ Returns a clone of the underlying describing this field.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this field descriptor.
+
+
+
+ An extension identifier for this field, or null if this field isn't an extension.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns the accessor for this field.
+
+
+
+ While a describes the field, it does not provide
+ any way of obtaining or changing the value of the field within a specific message;
+ that is the responsibility of the accessor.
+
+
+ In descriptors for generated code, the value returned by this property will be non-null for all
+ regular fields. However, if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, and the value of the map field itself is represented by a dictionary in the
+ reflection API. There are never instances of those "hidden" messages, so no accessor is provided
+ and this property will return null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+
+
+ Maps a field type as included in the .proto file to a FieldType.
+
+
+
+
+ Returns true if this field is a repeated field; false otherwise.
+
+
+
+
+ Returns true if this field is a required field; false otherwise.
+
+
+
+
+ Returns true if this field is a map field; false otherwise.
+
+
+
+
+ Returns true if this field is a packed, repeated field; false otherwise.
+
+
+
+
+ Returns true if this field extends another message type; false otherwise.
+
+
+
+
+ Returns the type of the field.
+
+
+
+
+ Returns the field number declared in the proto file.
+
+
+
+
+ Compares this descriptor with another one, ordering in "canonical" order
+ which simply means ascending order by field number.
+ must be a field of the same type, i.e. the of
+ both fields must be the same.
+
+
+
+
+ For enum fields, returns the field's type.
+
+
+
+
+ For embedded message and group fields, returns the field's type.
+
+
+
+
+ For extension fields, returns the extended type
+
+
+
+
+ The (possibly empty) set of custom options for this field.
+
+
+
+
+ The FieldOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value field option for this descriptor
+
+
+
+
+ Gets a repeated value field option for this descriptor
+
+
+
+
+ Look up and cross-link all field types etc.
+
+
+
+
+ Enumeration of all the possible field types.
+
+
+
+
+ The double field type.
+
+
+
+
+ The float field type.
+
+
+
+
+ The int64 field type.
+
+
+
+
+ The uint64 field type.
+
+
+
+
+ The int32 field type.
+
+
+
+
+ The fixed64 field type.
+
+
+
+
+ The fixed32 field type.
+
+
+
+
+ The bool field type.
+
+
+
+
+ The string field type.
+
+
+
+
+ The field type used for groups.
+
+
+
+
+ The field type used for message fields.
+
+
+
+
+ The bytes field type.
+
+
+
+
+ The uint32 field type.
+
+
+
+
+ The sfixed32 field type.
+
+
+
+
+ The sfixed64 field type.
+
+
+
+
+ The sint32 field type.
+
+
+
+
+ The sint64 field type.
+
+
+
+
+ The field type used for enum fields.
+
+
+
+
+ The syntax of a .proto file
+
+
+
+
+ Proto2 syntax
+
+
+
+
+ Proto3 syntax
+
+
+
+
+ An unknown declared syntax
+
+
+
+
+ Describes a .proto file, including everything defined within.
+ IDescriptor is implemented such that the File property returns this descriptor,
+ and the FullName is the same as the Name.
+
+
+
+
+ Computes the full name of a descriptor within this file, with an optional parent message.
+
+
+
+
+ Extracts public dependencies from direct dependencies. This is a static method despite its
+ first parameter, as the value we're in the middle of constructing is only used for exceptions.
+
+
+
+
+ The descriptor in its protocol message representation.
+
+
+
+
+ Returns a clone of the underlying describing this file.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this file descriptor.
+
+
+
+ The syntax of the file
+
+
+
+
+ The file name.
+
+
+
+
+ The package as declared in the .proto file. This may or may not
+ be equivalent to the .NET namespace of the generated classes.
+
+
+
+
+ Unmodifiable list of top-level message types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level enum types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level services declared in this file.
+
+
+
+
+ Unmodifiable list of top-level extensions declared in this file.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if this descriptor was generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ Unmodifiable list of this file's dependencies (imports).
+
+
+
+
+ Unmodifiable list of this file's public dependencies (public imports).
+
+
+
+
+ The original serialized binary form of this descriptor.
+
+
+
+
+ Implementation of IDescriptor.FullName - just returns the same as Name.
+
+
+
+
+ Implementation of IDescriptor.File - just returns this descriptor.
+
+
+
+
+ Pool containing symbol descriptors.
+
+
+
+
+ Finds a type (message, enum, service or extension) in the file by name. Does not find nested types.
+
+ The unqualified type name to look for.
+ The type of descriptor to look for
+ The type's descriptor, or null if not found.
+
+
+
+ Builds a FileDescriptor from its protocol buffer representation.
+
+ The original serialized descriptor data.
+ We have only limited proto2 support, so serializing FileDescriptorProto
+ would not necessarily give us this.
+ The protocol message form of the FileDescriptor.
+ FileDescriptors corresponding to all of the
+ file's dependencies, in the exact order listed in the .proto file. May be null,
+ in which case it is treated as an empty array.
+ Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).
+ Details about generated code, for the purposes of reflection.
+ If is not
+ a valid descriptor. This can occur for a number of reasons, such as a field
+ having an undefined type or because two messages were defined with the same name.
+
+
+
+ Creates a descriptor for generated code.
+
+
+ This method is only designed to be used by the results of generating code with protoc,
+ which creates the appropriate dependencies etc. It has to be public because the generated
+ code is "external", but should not be called directly by end users.
+
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The extension registry to use when parsing, or null if no extensions are required.
+ The file descriptors corresponding to .
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The file descriptors corresponding to .
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns the file descriptor for descriptor.proto.
+
+
+ This is used for protos which take a direct dependency on descriptor.proto, typically for
+ annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf
+ runtime for reflection purposes. The messages are internal to the runtime as they would require
+ proto2 semantics for full support, but the file descriptor is available via this property. The
+ C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto.
+
+
+ The file descriptor for descriptor.proto.
+
+
+
+
+ The (possibly empty) set of custom options for this file.
+
+
+
+
+ The FileOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value file option for this descriptor
+
+
+
+
+ Gets a repeated value file option for this descriptor
+
+
+
+
+ Performs initialization for the given generic type argument.
+
+
+ This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated)
+ to make calls into the reflection machinery of this library to express an intention to use that type
+ reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers
+ attempting to determine which generic type arguments need to be handled will spot the code path and act
+ accordingly.
+
+ The type to force initialization for.
+
+
+
+ Extra information provided by generated code when initializing a message or file descriptor.
+ These are constructed as required, and are not long-lived. Hand-written code should
+ never need to use this type.
+
+
+
+
+ Irrelevant for file descriptors; the CLR type for the message for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the parser for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the CLR property names (in message descriptor field order)
+ for fields in the message for message descriptors.
+
+
+
+
+ The extensions defined within this file/message descriptor
+
+
+
+
+ Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order)
+ for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo",
+ there will be a "FooCase" property and a "ClearFoo" method.
+
+
+
+
+ The reflection information for types within this file/message descriptor. Elements may be null
+ if there is no corresponding generated type, e.g. for map entry types.
+
+
+
+
+ The CLR types for enums within this file/message descriptor.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums.
+
+
+
+
+ Interface implemented by all descriptor types.
+
+
+
+
+ Returns the name of the entity (message, field etc) being described.
+
+
+
+
+ Returns the fully-qualified name of the entity being described.
+
+
+
+
+ Returns the descriptor for the .proto file that this entity is part of.
+
+
+
+
+ Allows fields to be reflectively accessed.
+
+
+
+
+ Returns the descriptor associated with this field.
+
+
+
+
+ Clears the field in the specified message. (For repeated fields,
+ this clears the list.)
+
+
+
+
+ Fetches the field value. For repeated values, this will be an
+ implementation. For map values, this will be an
+ implementation.
+
+
+
+
+ Indicates whether the field in the specified message is set.
+ For proto3 fields that aren't explicitly optional, this throws an
+
+
+
+
+ Mutator for single "simple" fields only.
+
+
+ Repeated fields are mutated by fetching the value and manipulating it as a list.
+ Map fields are mutated by fetching the value and manipulating it as a dictionary.
+
+ The field is not a "simple" field.
+
+
+
+ Accessor for map fields.
+
+
+
+
+ Describes a message type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this message.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this message descriptor.
+
+
+
+ The CLR type used to represent message instances from this descriptor.
+
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the type returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ A parser for this message type.
+
+
+
+ As is not generic, this cannot be statically
+ typed to the relevant type, but it should produce objects of a type compatible with .
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. No message parser object is created for
+ such messages, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the parser returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ Returns whether this message is one of the "well known types" which may have runtime/protoc support.
+
+
+
+
+ Returns whether this message is one of the "wrapper types" used for fields which represent primitive values
+ with the addition of presence.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ A collection of fields, which can be retrieved by name or field number.
+
+
+
+
+ An unmodifiable list of extensions defined in this message's scope.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if they are declared in a file generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ An unmodifiable list of this message type's nested types.
+
+
+
+
+ An unmodifiable list of this message type's enum types.
+
+
+
+
+ An unmodifiable list of the "oneof" field collections in this message type.
+ All "real" oneofs (where returns false)
+ come before synthetic ones.
+
+
+
+
+ The number of real "oneof" descriptors in this message type. Every element in
+ with an index less than this will have a property value
+ of false; every element with an index greater than or equal to this will have a
+ property value of true.
+
+
+
+
+ Finds a field by field name.
+
+ The unqualified name of the field (e.g. "foo").
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a field by field number.
+
+ The field number within this message type.
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a nested descriptor by name. The is valid for fields, nested
+ message types, oneofs and enums.
+
+ The unqualified name of the descriptor, e.g. "Foo"
+ The descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this message.
+
+
+
+
+ The MessageOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value message option for this descriptor
+
+
+
+
+ Gets a repeated value message option for this descriptor
+
+
+
+
+ Looks up and cross-links all fields and nested types.
+
+
+
+
+ A collection to simplify retrieving the field accessor for a particular field.
+
+
+
+
+ Returns the fields in the message as an immutable list, in the order in which they
+ are declared in the source .proto file.
+
+
+
+
+ Returns the fields in the message as an immutable list, in ascending field number
+ order. Field numbers need not be contiguous, so there is no direct mapping from the
+ index in the list to the field number; to retrieve a field by field number, it is better
+ to use the indexer.
+
+
+
+
+ Returns a read-only dictionary mapping the field names in this message as they're available
+ in the JSON representation to the field descriptors. For example, a field foo_bar
+ in the message would result two entries, one with a key fooBar and one with a key
+ foo_bar, both referring to the same field.
+
+
+
+
+ Retrieves the descriptor for the field with the given number.
+
+ Number of the field to retrieve the descriptor for
+ The accessor for the given field
+ The message descriptor does not contain a field
+ with the given number
+
+
+
+ Retrieves the descriptor for the field with the given name.
+
+ Name of the field to retrieve the descriptor for
+ The descriptor for the given field
+ The message descriptor does not contain a field
+ with the given name
+
+
+
+ Describes a single method in a service.
+
+
+
+
+ The service this method belongs to.
+
+
+
+
+ The method's input type.
+
+
+
+
+ The method's input type.
+
+
+
+
+ Indicates if client streams multiple requests.
+
+
+
+
+ Indicates if server streams multiple responses.
+
+
+
+
+ The (possibly empty) set of custom options for this method.
+
+
+
+
+ The MethodOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value method option for this descriptor
+
+
+
+
+ Gets a repeated value method option for this descriptor
+
+
+
+
+ Returns a clone of the underlying describing this method.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this method descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Reflection access for a oneof, allowing clear and "get case" actions.
+
+
+
+
+ Gets the descriptor for this oneof.
+
+
+ The descriptor of the oneof.
+
+
+
+
+ Clears the oneof in the specified message.
+
+
+
+
+ Indicates which field in the oneof is set for specified message
+
+
+
+
+ Describes a "oneof" field collection in a message type: a set of
+ fields of which at most one can be set in any particular message.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this oneof.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this oneof descriptor.
+
+
+
+ Gets the message type containing this oneof.
+
+
+ The message type containing this oneof.
+
+
+
+
+ Gets the fields within this oneof, in declaration order.
+
+
+ The fields within this oneof, in declaration order.
+
+
+
+
+ Returns true if this oneof is a synthetic oneof containing a proto3 optional field;
+ false otherwise.
+
+
+
+
+ Gets an accessor for reflective access to the values associated with the oneof
+ in a particular message.
+
+
+
+ In descriptors for generated code, the value returned by this property will always be non-null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+ The accessor used for reflective access.
+
+
+
+
+ The (possibly empty) set of custom options for this oneof.
+
+
+
+
+ The OneofOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value oneof option for this descriptor
+
+
+
+
+ Gets a repeated value oneof option for this descriptor
+
+
+
+
+ Specifies the original name (in the .proto file) of a named element,
+ such as an enum value.
+
+
+
+
+ The name of the element in the .proto file.
+
+
+
+
+ If the name is preferred in the .proto file.
+
+
+
+
+ Constructs a new attribute instance for the given name.
+
+ The name of the element in the .proto file.
+
+
+
+ Represents a package in the symbol table. We use PackageDescriptors
+ just as placeholders so that someone cannot define, say, a message type
+ that has the same name as an existing package.
+
+
+
+
+ The methods in this class are somewhat evil, and should not be tampered with lightly.
+ Basically they allow the creation of relatively weakly typed delegates from MethodInfos
+ which are more strongly typed. They do this by creating an appropriate strongly typed
+ delegate from the MethodInfo, and then calling that within an anonymous method.
+ Mind-bending stuff (at least to your humble narrator) but the resulting delegates are
+ very fast compared with calling Invoke later on.
+
+
+
+
+ Empty Type[] used when calling GetProperty to force property instead of indexer fetching.
+
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to object.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to the specified type. The method is expected
+ to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that
+ means we need some extra work to perform conversions.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ type that declares the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+
+
+
+ Creates a reflection helper for the given type arguments. Currently these are created on demand
+ rather than cached; this will be "busy" when initially loading a message's descriptor, but after that
+ they can be garbage collected. We could cache them by type if that proves to be important, but creating
+ an object is pretty cheap.
+
+
+
+
+ Accessor for repeated fields.
+
+
+
+
+ Describes a service type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this service.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this service descriptor.
+
+
+
+ An unmodifiable list of methods in this service.
+
+
+
+
+ Finds a method by name.
+
+ The unqualified name of the method (e.g. "Foo").
+ The method's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this service.
+
+
+
+
+ The ServiceOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value service option for this descriptor
+
+
+
+
+ Gets a repeated value service option for this descriptor
+
+
+
+
+ Accessor for single fields.
+
+
+
+
+ An immutable registry of types which can be looked up by their full name.
+
+
+
+
+ An empty type registry, containing no types.
+
+
+
+
+ Attempts to find a message descriptor by its full name.
+
+ The full name of the message, which is the dot-separated
+ combination of package, containing messages and message name
+ The message descriptor corresponding to or null
+ if there is no such message descriptor.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ All message types within all the specified files are added to the registry, and
+ the dependencies of the specified files are also added, recursively.
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ The specified message descriptors are only used to identify their file descriptors; the returned registry
+ contains all the types within the file descriptors which contain the specified message descriptors (and
+ the dependencies of those files), not just the specified messages.
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls.
+
+
+
+
+ Abstraction for reading from a stream / read only sequence.
+ Parsing from the buffer is a loop of reading from current buffer / refreshing the buffer once done.
+
+
+
+
+ Initialize an instance with a coded input stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a read only sequence.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Represents a single field in an UnknownFieldSet.
+
+ An UnknownField consists of four lists of values. The lists correspond
+ to the four "wire types" used in the protocol buffer binary format.
+ Normally, only one of the four lists will contain any values, since it
+ is impossible to define a valid message type that declares two different
+ types for the same field number. However, the code is designed to allow
+ for the case where the same unknown field number is encountered using
+ multiple different wire types.
+
+
+
+
+
+ Creates a new UnknownField.
+
+
+
+
+ Checks if two unknown field are equal.
+
+
+
+
+ Get the hash code of the unknown field.
+
+
+
+
+ Serializes the field, including the field number, and writes it to
+
+
+ The unknown field number.
+ The write context to write to.
+
+
+
+ Computes the number of bytes required to encode this field, including field
+ number.
+
+
+
+
+ Merge the values in into this field. For each list
+ of values, 's values are append to the ones in this
+ field.
+
+
+
+
+ Returns a new list containing all of the given specified values from
+ both the and lists.
+ If is null and is null or empty,
+ null is returned. Otherwise, either a new list is created (if
+ is null) or the elements of are added to .
+
+
+
+
+ Adds a varint value.
+
+
+
+
+ Adds a fixed32 value.
+
+
+
+
+ Adds a fixed64 value.
+
+
+
+
+ Adds a length-delimited value.
+
+
+
+
+ Adds to the , creating
+ a new list if is null. The list is returned - either
+ the original reference or the new list.
+
+
+
+
+ Used to keep track of fields which were seen when parsing a protocol message
+ but whose field numbers or types are unrecognized. This most frequently
+ occurs when new fields are added to a message type and then messages containing
+ those fields are read by old software that was built before the new types were
+ added.
+
+ Most users will never need to use this class directly.
+
+
+
+
+ Creates a new UnknownFieldSet.
+
+
+
+
+ Checks whether or not the given field number is present in the set.
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Gets the number of bytes required to encode this set.
+
+
+
+
+ Checks if two unknown field sets are equal.
+
+
+
+
+ Gets the unknown field set's hash code.
+
+
+
+
+ Adds a field to the set. If a field with the same number already exists, it
+ is replaced.
+
+
+
+
+ Parse a single field from and merge it
+ into this set.
+
+ The parse context from which to read the field
+ false if the tag is an "end group" tag, true otherwise
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The coded input stream containing the field
+ The merged UnknownFieldSet
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The parse context from which to read the field
+ The merged UnknownFieldSet
+
+
+
+ Merges the fields from into this set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Created a new UnknownFieldSet to if
+ needed and merges the fields from into the first set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Adds a field to the unknown field set. If a field with the same
+ number already exists, the two are merged.
+
+
+
+
+ Clone an unknown field set from .
+
+
+
+
+ Provides a number of unsafe byte operations to be used by advanced applications with high performance
+ requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose
+ the backing buffer of a to the application.
+
+
+
+ The methods in this class should only be called if it is guaranteed that the buffer backing the
+ will never change! Mutation of a can lead to unexpected
+ and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution!
+
+
+ This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In
+ particular, if the bytes value changes out from under a Protocol Buffer:
+
+
+ -
+ serialization may throw
+
+ -
+ serialization may succeed but the wrong bytes may be written out
+
+ -
+ objects that are normally immutable (such as ByteString) are no longer immutable
+
+ -
+ hashCode may be incorrect
+
+
+
+
+
+
+ Constructs a new from the given bytes. The bytes are not copied,
+ and must not be modified while the is in use.
+ This API is experimental and subject to change.
+
+
+
+ Holder for reflection information generated from google/protobuf/any.proto
+
+
+ File descriptor for google/protobuf/any.proto
+
+
+
+ `Any` contains an arbitrary serialized protocol buffer message along with a
+ URL that describes the type of the serialized message.
+
+ Protobuf library provides support to pack/unpack Any values in the form
+ of utility functions or additional generated methods of the Any type.
+
+ Example 1: Pack and unpack a message in C++.
+
+ Foo foo = ...;
+ Any any;
+ any.PackFrom(foo);
+ ...
+ if (any.UnpackTo(&foo)) {
+ ...
+ }
+
+ Example 2: Pack and unpack a message in Java.
+
+ Foo foo = ...;
+ Any any = Any.pack(foo);
+ ...
+ if (any.is(Foo.class)) {
+ foo = any.unpack(Foo.class);
+ }
+
+ Example 3: Pack and unpack a message in Python.
+
+ foo = Foo(...)
+ any = Any()
+ any.Pack(foo)
+ ...
+ if any.Is(Foo.DESCRIPTOR):
+ any.Unpack(foo)
+ ...
+
+ Example 4: Pack and unpack a message in Go
+
+ foo := &pb.Foo{...}
+ any, err := anypb.New(foo)
+ if err != nil {
+ ...
+ }
+ ...
+ foo := &pb.Foo{}
+ if err := any.UnmarshalTo(foo); err != nil {
+ ...
+ }
+
+ The pack methods provided by protobuf library will by default use
+ 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ methods only use the fully qualified type name after the last '/'
+ in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ name "y.z".
+
+ JSON
+
+ The JSON representation of an `Any` value uses the regular
+ representation of the deserialized, embedded message, with an
+ additional field `@type` which contains the type URL. Example:
+
+ package google.profile;
+ message Person {
+ string first_name = 1;
+ string last_name = 2;
+ }
+
+ {
+ "@type": "type.googleapis.com/google.profile.Person",
+ "firstName": <string>,
+ "lastName": <string>
+ }
+
+ If the embedded message type is well-known and has a custom JSON
+ representation, that representation will be embedded adding a field
+ `value` which holds the custom JSON in addition to the `@type`
+ field. Example (for message [google.protobuf.Duration][]):
+
+ {
+ "@type": "type.googleapis.com/google.protobuf.Duration",
+ "value": "1.212s"
+ }
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ A URL/resource name that uniquely identifies the type of the serialized
+ protocol buffer message. This string must contain at least
+ one "/" character. The last segment of the URL's path must represent
+ the fully qualified name of the type (as in
+ `path/google.protobuf.Duration`). The name should be in a canonical form
+ (e.g., leading "." is not accepted).
+
+ In practice, teams usually precompile into the binary all types that they
+ expect it to use in the context of Any. However, for URLs which use the
+ scheme `http`, `https`, or no scheme, one can optionally set up a type
+ server that maps type URLs to message definitions as follows:
+
+ * If no scheme is provided, `https` is assumed.
+ * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ value in binary format, or produce an error.
+ * Applications are allowed to cache lookup results based on the
+ URL, or have them precompiled into a binary to avoid any
+ lookup. Therefore, binary compatibility needs to be preserved
+ on changes to types. (Use versioned type names to manage
+ breaking changes.)
+
+ Note: this functionality is not currently available in the official
+ protobuf release, and it is not used for type URLs beginning with
+ type.googleapis.com.
+
+ Schemes other than `http`, `https` (or the empty scheme) might be
+ used with implementation specific semantics.
+
+
+
+ Field number for the "value" field.
+
+
+
+ Must be a valid serialized protocol buffer of the above specified type.
+
+
+
+
+ Retrieves the type name for a type URL, matching the
+ of the packed message type.
+
+
+
+ This is always just the last part of the URL, after the final slash. No validation of
+ anything before the trailing slash is performed. If the type URL does not include a slash,
+ an empty string is returned rather than an exception being thrown; this won't match any types,
+ and the calling code is probably in a better position to give a meaningful error.
+
+
+ There is no handling of fragments or queries at the moment.
+
+
+ The URL to extract the type name from
+ The type name
+
+
+
+ Returns a bool indictating whether this Any message is of the target message type
+
+ The descriptor of the message type
+ true if the type name matches the descriptor's full name or false otherwise
+
+
+
+ Unpacks the content of this Any message into the target message type,
+ which must match the type URL within this Any message.
+
+ The type of message to unpack the content into.
+ The unpacked message.
+ The target message type doesn't match the type URL in this message
+
+
+
+ Attempts to unpack the content of this Any message into the target message type,
+ if it matches the type URL within this Any message.
+
+ The type of message to attempt to unpack the content into.
+ true if the message was successfully unpacked; false if the type name didn't match
+
+
+
+ Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com".
+
+ The message to pack.
+ An Any message with the content and type URL of .
+
+
+
+ Packs the specified message into an Any message using the specified type URL prefix.
+
+ The message to pack.
+ The prefix for the type URL.
+ An Any message with the content and type URL of .
+
+
+ Holder for reflection information generated from google/protobuf/api.proto
+
+
+ File descriptor for google/protobuf/api.proto
+
+
+
+ Api is a light-weight descriptor for an API Interface.
+
+ Interfaces are also described as "protocol buffer services" in some contexts,
+ such as by the "service" keyword in a .proto file, but they are different
+ from API Services, which represent a concrete implementation of an interface
+ as opposed to simply a description of methods and bindings. They are also
+ sometimes simply referred to as "APIs" in other contexts, such as the name of
+ this message itself. See https://cloud.google.com/apis/design/glossary for
+ detailed terminology.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of this interface, including package name
+ followed by the interface's simple name.
+
+
+
+ Field number for the "methods" field.
+
+
+
+ The methods of this interface, in unspecified order.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the interface.
+
+
+
+ Field number for the "version" field.
+
+
+
+ A version string for this interface. If specified, must have the form
+ `major-version.minor-version`, as in `1.10`. If the minor version is
+ omitted, it defaults to zero. If the entire version field is empty, the
+ major version is derived from the package name, as outlined below. If the
+ field is not empty, the version in the package name will be verified to be
+ consistent with what is provided here.
+
+ The versioning schema uses [semantic
+ versioning](http://semver.org) where the major version number
+ indicates a breaking change and the minor version an additive,
+ non-breaking change. Both version numbers are signals to users
+ what to expect from different versions, and should be carefully
+ chosen based on the product plan.
+
+ The major version is also reflected in the package name of the
+ interface, which must end in `v<major-version>`, as in
+ `google.feature.v1`. For major versions 0 and 1, the suffix can
+ be omitted. Zero major versions must only be used for
+ experimental, non-GA interfaces.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ Source context for the protocol buffer service represented by this
+ message.
+
+
+
+ Field number for the "mixins" field.
+
+
+
+ Included interfaces. See [Mixin][].
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of the service.
+
+
+
+
+ Method represents a method of an API interface.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The simple name of this method.
+
+
+
+ Field number for the "request_type_url" field.
+
+
+
+ A URL of the input message type.
+
+
+
+ Field number for the "request_streaming" field.
+
+
+
+ If true, the request is streamed.
+
+
+
+ Field number for the "response_type_url" field.
+
+
+
+ The URL of the output message type.
+
+
+
+ Field number for the "response_streaming" field.
+
+
+
+ If true, the response is streamed.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the method.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of this method.
+
+
+
+
+ Declares an API Interface to be included in this interface. The including
+ interface must redeclare all the methods from the included interface, but
+ documentation and options are inherited as follows:
+
+ - If after comment and whitespace stripping, the documentation
+ string of the redeclared method is empty, it will be inherited
+ from the original method.
+
+ - Each annotation belonging to the service config (http,
+ visibility) which is not set in the redeclared method will be
+ inherited.
+
+ - If an http annotation is inherited, the path pattern will be
+ modified as follows. Any version prefix will be replaced by the
+ version of the including interface plus the [root][] path if
+ specified.
+
+ Example of a simple mixin:
+
+ package google.acl.v1;
+ service AccessControl {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v1/{resource=**}:getAcl";
+ }
+ }
+
+ package google.storage.v2;
+ service Storage {
+ rpc GetAcl(GetAclRequest) returns (Acl);
+
+ // Get a data record.
+ rpc GetData(GetDataRequest) returns (Data) {
+ option (google.api.http).get = "/v2/{resource=**}";
+ }
+ }
+
+ Example of a mixin configuration:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+
+ The mixin construct implies that all methods in `AccessControl` are
+ also declared with same name and request/response types in
+ `Storage`. A documentation generator or annotation processor will
+ see the effective `Storage.GetAcl` method after inheriting
+ documentation and annotations as follows:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+ Note how the version in the path pattern changed from `v1` to `v2`.
+
+ If the `root` field in the mixin is specified, it should be a
+ relative path under which inherited HTTP paths are placed. Example:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+ root: acls
+
+ This implies the following inherited HTTP annotation:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of the interface which is included.
+
+
+
+ Field number for the "root" field.
+
+
+
+ If non-empty specifies a path under which inherited HTTP paths
+ are rooted.
+
+
+
+ Holder for reflection information generated from google/protobuf/duration.proto
+
+
+ File descriptor for google/protobuf/duration.proto
+
+
+
+ A Duration represents a signed, fixed-length span of time represented
+ as a count of seconds and fractions of seconds at nanosecond
+ resolution. It is independent of any calendar and concepts like "day"
+ or "month". It is related to Timestamp in that the difference between
+ two Timestamp values is a Duration and it can be added or subtracted
+ from a Timestamp. Range is approximately +-10,000 years.
+
+ # Examples
+
+ Example 1: Compute Duration from two Timestamps in pseudo code.
+
+ Timestamp start = ...;
+ Timestamp end = ...;
+ Duration duration = ...;
+
+ duration.seconds = end.seconds - start.seconds;
+ duration.nanos = end.nanos - start.nanos;
+
+ if (duration.seconds < 0 && duration.nanos > 0) {
+ duration.seconds += 1;
+ duration.nanos -= 1000000000;
+ } else if (duration.seconds > 0 && duration.nanos < 0) {
+ duration.seconds -= 1;
+ duration.nanos += 1000000000;
+ }
+
+ Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+
+ Timestamp start = ...;
+ Duration duration = ...;
+ Timestamp end = ...;
+
+ end.seconds = start.seconds + duration.seconds;
+ end.nanos = start.nanos + duration.nanos;
+
+ if (end.nanos < 0) {
+ end.seconds -= 1;
+ end.nanos += 1000000000;
+ } else if (end.nanos >= 1000000000) {
+ end.seconds += 1;
+ end.nanos -= 1000000000;
+ }
+
+ Example 3: Compute Duration from datetime.timedelta in Python.
+
+ td = datetime.timedelta(days=3, minutes=10)
+ duration = Duration()
+ duration.FromTimedelta(td)
+
+ # JSON Mapping
+
+ In JSON format, the Duration type is encoded as a string rather than an
+ object, where the string ends in the suffix "s" (indicating seconds) and
+ is preceded by the number of seconds, with nanoseconds expressed as
+ fractional seconds. For example, 3 seconds with 0 nanoseconds should be
+ encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
+ be expressed in JSON format as "3.000000001s", and 3 seconds and 1
+ microsecond should be expressed in JSON format as "3.000001s".
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Signed seconds of the span of time. Must be from -315,576,000,000
+ to +315,576,000,000 inclusive. Note: these bounds are computed from:
+ 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Signed fractions of a second at nanosecond resolution of the span
+ of time. Durations less than one second are represented with a 0
+ `seconds` field and a positive or negative `nanos` field. For durations
+ of one second or more, a non-zero value for the `nanos` field must be
+ of the same sign as the `seconds` field. Must be from -999,999,999
+ to +999,999,999 inclusive.
+
+
+
+
+ The number of nanoseconds in a second.
+
+
+
+
+ The number of nanoseconds in a BCL tick (as used by and ).
+
+
+
+
+ The maximum permitted number of seconds.
+
+
+
+
+ The minimum permitted number of seconds.
+
+
+
+
+ Converts this to a .
+
+ If the duration is not a precise number of ticks, it is truncated towards 0.
+ The value of this duration, as a TimeSpan.
+ This value isn't a valid normalized duration, as
+ described in the documentation.
+
+
+
+ Converts the given to a .
+
+ The TimeSpan to convert.
+ The value of the given TimeSpan, as a Duration.
+
+
+
+ Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes.
+
+ The duration to negate. Must not be null.
+ The negated value of this duration.
+
+
+
+ Adds the two specified values together.
+
+ The first value to add. Must not be null.
+ The second value to add. Must not be null.
+
+
+
+
+ Subtracts one from another.
+
+ The duration to subtract from. Must not be null.
+ The duration to subtract. Must not be null.
+ The difference between the two specified durations.
+
+
+
+ Creates a duration with the normalized values from the given number of seconds and
+ nanoseconds, conforming with the description in the proto file.
+
+
+
+
+ Converts a duration specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in duration.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which
+ case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well
+ as Duration.
+
+
+
+ Holder for reflection information generated from google/protobuf/empty.proto
+
+
+ File descriptor for google/protobuf/empty.proto
+
+
+
+ A generic empty message that you can re-use to avoid defining duplicated
+ empty messages in your APIs. A typical example is to use it as the request
+ or the response type of an API method. For instance:
+
+ service Foo {
+ rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+ }
+
+
+
+ Holder for reflection information generated from google/protobuf/field_mask.proto
+
+
+ File descriptor for google/protobuf/field_mask.proto
+
+
+
+ `FieldMask` represents a set of symbolic field paths, for example:
+
+ paths: "f.a"
+ paths: "f.b.d"
+
+ Here `f` represents a field in some root message, `a` and `b`
+ fields in the message found in `f`, and `d` a field found in the
+ message in `f.b`.
+
+ Field masks are used to specify a subset of fields that should be
+ returned by a get operation or modified by an update operation.
+ Field masks also have a custom JSON encoding (see below).
+
+ # Field Masks in Projections
+
+ When used in the context of a projection, a response message or
+ sub-message is filtered by the API to only contain those fields as
+ specified in the mask. For example, if the mask in the previous
+ example is applied to a response message as follows:
+
+ f {
+ a : 22
+ b {
+ d : 1
+ x : 2
+ }
+ y : 13
+ }
+ z: 8
+
+ The result will not contain specific values for fields x,y and z
+ (their value will be set to the default, and omitted in proto text
+ output):
+
+ f {
+ a : 22
+ b {
+ d : 1
+ }
+ }
+
+ A repeated field is not allowed except at the last position of a
+ paths string.
+
+ If a FieldMask object is not present in a get operation, the
+ operation applies to all fields (as if a FieldMask of all fields
+ had been specified).
+
+ Note that a field mask does not necessarily apply to the
+ top-level response message. In case of a REST get operation, the
+ field mask applies directly to the response, but in case of a REST
+ list operation, the mask instead applies to each individual message
+ in the returned resource list. In case of a REST custom method,
+ other definitions may be used. Where the mask applies will be
+ clearly documented together with its declaration in the API. In
+ any case, the effect on the returned resource/resources is required
+ behavior for APIs.
+
+ # Field Masks in Update Operations
+
+ A field mask in update operations specifies which fields of the
+ targeted resource are going to be updated. The API is required
+ to only change the values of the fields as specified in the mask
+ and leave the others untouched. If a resource is passed in to
+ describe the updated values, the API ignores the values of all
+ fields not covered by the mask.
+
+ If a repeated field is specified for an update operation, new values will
+ be appended to the existing repeated field in the target resource. Note that
+ a repeated field is only allowed in the last position of a `paths` string.
+
+ If a sub-message is specified in the last position of the field mask for an
+ update operation, then new value will be merged into the existing sub-message
+ in the target resource.
+
+ For example, given the target message:
+
+ f {
+ b {
+ d: 1
+ x: 2
+ }
+ c: [1]
+ }
+
+ And an update message:
+
+ f {
+ b {
+ d: 10
+ }
+ c: [2]
+ }
+
+ then if the field mask is:
+
+ paths: ["f.b", "f.c"]
+
+ then the result will be:
+
+ f {
+ b {
+ d: 10
+ x: 2
+ }
+ c: [1, 2]
+ }
+
+ An implementation may provide options to override this default behavior for
+ repeated and message fields.
+
+ In order to reset a field's value to the default, the field must
+ be in the mask and set to the default value in the provided resource.
+ Hence, in order to reset all fields of a resource, provide a default
+ instance of the resource and set all fields in the mask, or do
+ not provide a mask as described below.
+
+ If a field mask is not present on update, the operation applies to
+ all fields (as if a field mask of all fields has been specified).
+ Note that in the presence of schema evolution, this may mean that
+ fields the client does not know and has therefore not filled into
+ the request will be reset to their default. If this is unwanted
+ behavior, a specific service may require a client to always specify
+ a field mask, producing an error if not.
+
+ As with get operations, the location of the resource which
+ describes the updated values in the request message depends on the
+ operation kind. In any case, the effect of the field mask is
+ required to be honored by the API.
+
+ ## Considerations for HTTP REST
+
+ The HTTP kind of an update operation which uses a field mask must
+ be set to PATCH instead of PUT in order to satisfy HTTP semantics
+ (PUT must only be used for full updates).
+
+ # JSON Encoding of Field Masks
+
+ In JSON, a field mask is encoded as a single string where paths are
+ separated by a comma. Fields name in each path are converted
+ to/from lower-camel naming conventions.
+
+ As an example, consider the following message declarations:
+
+ message Profile {
+ User user = 1;
+ Photo photo = 2;
+ }
+ message User {
+ string display_name = 1;
+ string address = 2;
+ }
+
+ In proto a field mask for `Profile` may look as such:
+
+ mask {
+ paths: "user.display_name"
+ paths: "photo"
+ }
+
+ In JSON, the same mask is represented as below:
+
+ {
+ mask: "user.displayName,photo"
+ }
+
+ # Field Masks and Oneof Fields
+
+ Field masks treat fields in oneofs just as regular fields. Consider the
+ following message:
+
+ message SampleMessage {
+ oneof test_oneof {
+ string name = 4;
+ SubMessage sub_message = 9;
+ }
+ }
+
+ The field mask can be:
+
+ mask {
+ paths: "name"
+ }
+
+ Or:
+
+ mask {
+ paths: "sub_message"
+ }
+
+ Note that oneof type names ("test_oneof" in this case) cannot be used in
+ paths.
+
+ ## Field Mask Verification
+
+ The implementation of any API method which has a FieldMask type field in the
+ request should verify the included field paths, and return an
+ `INVALID_ARGUMENT` error if any path is unmappable.
+
+
+
+ Field number for the "paths" field.
+
+
+
+ The set of field mask paths.
+
+
+
+
+ Converts a field mask specified by paths to a string.
+
+
+ If the value is a normalized duration in the range described in field_mask.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Paths in the field mask
+ Determines the handling of non-normalized values
+ The represented field mask is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Parses from a string to a FieldMask.
+
+
+
+
+ Parses from a string to a FieldMask and validates all field paths.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask for a list of field paths in a certain type.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether the given path is valid for a field mask.
+
+ true if the path is valid; false otherwise
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Checks whether a given field path is valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Converts this FieldMask to its canonical form. In the canonical form of a
+ FieldMask, all field paths are sorted alphabetically and redundant field
+ paths are removed.
+
+
+
+
+ Creates a union of two or more FieldMasks.
+
+
+
+
+ Calculates the intersection of two FieldMasks.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another with the
+ specified merge options.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another.
+
+
+
+
+ Options to customize merging behavior.
+
+
+
+
+ Whether to replace message fields(i.e., discard existing content in
+ destination message fields) when merging.
+ Default behavior is to merge the source message field into the
+ destination message field.
+
+
+
+
+ Whether to replace repeated fields (i.e., discard existing content in
+ destination repeated fields) when merging.
+ Default behavior is to append elements from source repeated field to the
+ destination repeated field.
+
+
+
+
+ Whether to replace primitive (non-repeated and non-message) fields in
+ destination message fields with the source primitive fields (i.e., if the
+ field is set in the source, the value is copied to the
+ destination; if the field is unset in the source, the field is cleared
+ from the destination) when merging.
+
+ Default behavior is to always set the value of the source primitive
+ field to the destination primitive field, and if the source field is
+ unset, the default value of the source field is copied to the
+ destination.
+
+
+
+ Holder for reflection information generated from google/protobuf/source_context.proto
+
+
+ File descriptor for google/protobuf/source_context.proto
+
+
+
+ `SourceContext` represents information about the source of a
+ protobuf element, like the file in which it is defined.
+
+
+
+ Field number for the "file_name" field.
+
+
+
+ The path-qualified name of the .proto file that contained the associated
+ protobuf element. For example: `"google/protobuf/source_context.proto"`.
+
+
+
+ Holder for reflection information generated from google/protobuf/struct.proto
+
+
+ File descriptor for google/protobuf/struct.proto
+
+
+
+ `NullValue` is a singleton enumeration to represent the null value for the
+ `Value` type union.
+
+ The JSON representation for `NullValue` is JSON `null`.
+
+
+
+
+ Null value.
+
+
+
+
+ `Struct` represents a structured data value, consisting of fields
+ which map to dynamically typed values. In some languages, `Struct`
+ might be supported by a native representation. For example, in
+ scripting languages like JS a struct is represented as an
+ object. The details of that representation are described together
+ with the proto support for the language.
+
+ The JSON representation for `Struct` is JSON object.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ Unordered map of dynamically typed values.
+
+
+
+
+ `Value` represents a dynamically typed value which can be either
+ null, a number, a string, a boolean, a recursive struct value, or a
+ list of values. A producer of value is expected to set one of these
+ variants. Absence of any variant indicates an error.
+
+ The JSON representation for `Value` is JSON value.
+
+
+
+ Field number for the "null_value" field.
+
+
+
+ Represents a null value.
+
+
+
+ Field number for the "number_value" field.
+
+
+
+ Represents a double value.
+
+
+
+ Field number for the "string_value" field.
+
+
+
+ Represents a string value.
+
+
+
+ Field number for the "bool_value" field.
+
+
+
+ Represents a boolean value.
+
+
+
+ Field number for the "struct_value" field.
+
+
+
+ Represents a structured value.
+
+
+
+ Field number for the "list_value" field.
+
+
+
+ Represents a repeated `Value`.
+
+
+
+ Enum of possible cases for the "kind" oneof.
+
+
+
+ Convenience method to create a Value message with a string value.
+
+ Value to set for the StringValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a number value.
+
+ Value to set for the NumberValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a Boolean value.
+
+ Value to set for the BoolValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a null initial value.
+
+ A newly-created Value message a null initial value.
+
+
+
+ Convenience method to create a Value message with an initial list of values.
+
+ The values provided are not cloned; the references are copied directly.
+ A newly-created Value message an initial list value.
+
+
+
+ Convenience method to create a Value message with an initial struct value
+
+ The value provided is not cloned; the reference is copied directly.
+ A newly-created Value message an initial struct value.
+
+
+
+ `ListValue` is a wrapper around a repeated field of values.
+
+ The JSON representation for `ListValue` is JSON array.
+
+
+
+ Field number for the "values" field.
+
+
+
+ Repeated field of dynamically typed values.
+
+
+
+
+ Extension methods on BCL time-related types, converting to protobuf types.
+
+
+
+
+ Converts the given to a .
+
+ The date and time to convert to a timestamp.
+ The value has a other than Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts the given to a .
+
+ The time span to convert.
+ The converted duration.
+
+
+ Holder for reflection information generated from google/protobuf/timestamp.proto
+
+
+ File descriptor for google/protobuf/timestamp.proto
+
+
+
+ A Timestamp represents a point in time independent of any time zone or local
+ calendar, encoded as a count of seconds and fractions of seconds at
+ nanosecond resolution. The count is relative to an epoch at UTC midnight on
+ January 1, 1970, in the proleptic Gregorian calendar which extends the
+ Gregorian calendar backwards to year one.
+
+ All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+ second table is needed for interpretation, using a [24-hour linear
+ smear](https://developers.google.com/time/smear).
+
+ The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+ restricting to that range, we ensure that we can convert to and from [RFC
+ 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+
+ # Examples
+
+ Example 1: Compute Timestamp from POSIX `time()`.
+
+ Timestamp timestamp;
+ timestamp.set_seconds(time(NULL));
+ timestamp.set_nanos(0);
+
+ Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+
+ Timestamp timestamp;
+ timestamp.set_seconds(tv.tv_sec);
+ timestamp.set_nanos(tv.tv_usec * 1000);
+
+ Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+
+ // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ Timestamp timestamp;
+ timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+
+ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+
+ long millis = System.currentTimeMillis();
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ .setNanos((int) ((millis % 1000) * 1000000)).build();
+
+ Example 5: Compute Timestamp from Java `Instant.now()`.
+
+ Instant now = Instant.now();
+
+ Timestamp timestamp =
+ Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+ .setNanos(now.getNano()).build();
+
+ Example 6: Compute Timestamp from current time in Python.
+
+ timestamp = Timestamp()
+ timestamp.GetCurrentTime()
+
+ # JSON Mapping
+
+ In JSON format, the Timestamp type is encoded as a string in the
+ [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+ format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+ where {year} is always expressed using four digits while {month}, {day},
+ {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+ seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+ are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+ is required. A proto3 JSON serializer should always use UTC (as indicated by
+ "Z") when printing the Timestamp type and a proto3 JSON parser should be
+ able to accept both UTC and other timezones (as indicated by an offset).
+
+ For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+ 01:30 UTC on January 15, 2017.
+
+ In JavaScript, one can convert a Date object to this format using the
+ standard
+ [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ method. In Python, a standard `datetime.datetime` object can be converted
+ to this format using
+ [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
+ ) to obtain a formatter capable of generating timestamps in this format.
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Represents seconds of UTC time since Unix epoch
+ 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+ 9999-12-31T23:59:59Z inclusive.
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Non-negative fractions of a second at nanosecond resolution. Negative
+ second values with fractions must still have non-negative nanos values
+ that count forward in time. Must be from 0 to 999,999,999
+ inclusive.
+
+
+
+
+ Returns the difference between one and another, as a .
+
+ The timestamp to subtract from. Must not be null.
+ The timestamp to subtract. Must not be null.
+ The difference between the two specified timestamps.
+
+
+
+ Adds a to a , to obtain another Timestamp.
+
+ The timestamp to add the duration to. Must not be null.
+ The duration to add. Must not be null.
+ The result of adding the duration to the timestamp.
+
+
+
+ Subtracts a from a , to obtain another Timestamp.
+
+ The timestamp to subtract the duration from. Must not be null.
+ The duration to subtract.
+ The result of subtracting the duration from the timestamp.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTime will always have a Kind of Utc.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTime.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTimeOffset will always have an Offset of zero.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTimeOffset.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts the specified to a .
+
+
+ The Kind of is not DateTimeKind.Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts a timestamp specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in timestamp.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+ Timestamp to compare
+ an integer indicating whether this timestamp precedes or follows the other
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Returns whether two timestamps are equivalent
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps refer to the same nanosecond
+
+
+
+ Returns whether two timestamps differ
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps differ
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+ Holder for reflection information generated from google/protobuf/type.proto
+
+
+ File descriptor for google/protobuf/type.proto
+
+
+
+ The syntax in which a protocol buffer element is defined.
+
+
+
+
+ Syntax `proto2`.
+
+
+
+
+ Syntax `proto3`.
+
+
+
+
+ A protocol buffer message type.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified message name.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ The list of fields.
+
+
+
+ Field number for the "oneofs" field.
+
+
+
+ The list of types appearing in `oneof` definitions in this type.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ A single field of a message type.
+
+
+
+ Field number for the "kind" field.
+
+
+
+ The field type.
+
+
+
+ Field number for the "cardinality" field.
+
+
+
+ The field cardinality.
+
+
+
+ Field number for the "number" field.
+
+
+
+ The field number.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The field name.
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ The field type URL, without the scheme, for message or enumeration
+ types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ The index of the field type in `Type.oneofs`, for message or enumeration
+ types. The first type has index 1; zero means the type is not in the list.
+
+
+
+ Field number for the "packed" field.
+
+
+
+ Whether to use alternative packed wire representation.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "json_name" field.
+
+
+
+ The field JSON name.
+
+
+
+ Field number for the "default_value" field.
+
+
+
+ The string value of the default value of this field. Proto2 syntax only.
+
+
+
+ Container for nested types declared in the Field message type.
+
+
+
+ Basic field types.
+
+
+
+
+ Field type unknown.
+
+
+
+
+ Field type double.
+
+
+
+
+ Field type float.
+
+
+
+
+ Field type int64.
+
+
+
+
+ Field type uint64.
+
+
+
+
+ Field type int32.
+
+
+
+
+ Field type fixed64.
+
+
+
+
+ Field type fixed32.
+
+
+
+
+ Field type bool.
+
+
+
+
+ Field type string.
+
+
+
+
+ Field type group. Proto2 syntax only, and deprecated.
+
+
+
+
+ Field type message.
+
+
+
+
+ Field type bytes.
+
+
+
+
+ Field type uint32.
+
+
+
+
+ Field type enum.
+
+
+
+
+ Field type sfixed32.
+
+
+
+
+ Field type sfixed64.
+
+
+
+
+ Field type sint32.
+
+
+
+
+ Field type sint64.
+
+
+
+
+ Whether a field is optional, required, or repeated.
+
+
+
+
+ For fields with unknown cardinality.
+
+
+
+
+ For optional fields.
+
+
+
+
+ For required fields. Proto2 syntax only.
+
+
+
+
+ For repeated fields.
+
+
+
+
+ Enum type definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum type name.
+
+
+
+ Field number for the "enumvalue" field.
+
+
+
+ Enum value definitions.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ Enum value definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum value name.
+
+
+
+ Field number for the "number" field.
+
+
+
+ Enum value number.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+
+ A protocol buffer option, which can be attached to a message, field,
+ enumeration, etc.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The option's name. For protobuf built-in options (options defined in
+ descriptor.proto), this is the short name. For example, `"map_entry"`.
+ For custom options, it should be the fully-qualified name. For example,
+ `"google.api.http"`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The option's value packed in an Any message. If the value is a primitive,
+ the corresponding wrapper type defined in google/protobuf/wrappers.proto
+ should be used. If the value is an enum, it should be stored as an int32
+ value using the google.protobuf.Int32Value type.
+
+
+
+ Holder for reflection information generated from google/protobuf/wrappers.proto
+
+
+ File descriptor for google/protobuf/wrappers.proto
+
+
+
+ Field number for the single "value" field in all wrapper types.
+
+
+
+
+ Wrapper message for `double`.
+
+ The JSON representation for `DoubleValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The double value.
+
+
+
+
+ Wrapper message for `float`.
+
+ The JSON representation for `FloatValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The float value.
+
+
+
+
+ Wrapper message for `int64`.
+
+ The JSON representation for `Int64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int64 value.
+
+
+
+
+ Wrapper message for `uint64`.
+
+ The JSON representation for `UInt64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint64 value.
+
+
+
+
+ Wrapper message for `int32`.
+
+ The JSON representation for `Int32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int32 value.
+
+
+
+
+ Wrapper message for `uint32`.
+
+ The JSON representation for `UInt32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint32 value.
+
+
+
+
+ Wrapper message for `bool`.
+
+ The JSON representation for `BoolValue` is JSON `true` and `false`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bool value.
+
+
+
+
+ Wrapper message for `string`.
+
+ The JSON representation for `StringValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The string value.
+
+
+
+
+ Wrapper message for `bytes`.
+
+ The JSON representation for `BytesValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bytes value.
+
+
+
+
+ This class is used internally by the Protocol Buffer Library and generated
+ message implementations. It is public only for the sake of those generated
+ messages. Others should not use this class directly.
+
+ This class contains constants and helper functions useful for dealing with
+ the Protocol Buffer wire format.
+
+
+
+
+
+ Wire types within protobuf encoding.
+
+
+
+
+ Variable-length integer.
+
+
+
+
+ A fixed-length 64-bit value.
+
+
+
+
+ A length-delimited value, i.e. a length followed by that many bytes of data.
+
+
+
+
+ A "start group" value
+
+
+
+
+ An "end group" value
+
+
+
+
+ A fixed-length 32-bit value.
+
+
+
+
+ Given a tag value, determines the wire type (lower 3 bits).
+
+
+
+
+ Given a tag value, determines the field number (the upper 29 bits).
+
+
+
+
+ Makes a tag value given a field number and wire type.
+
+
+
+
+ Abstraction for writing to a steam / IBufferWriter
+
+
+
+
+ Initialize an instance with a coded output stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer writer.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer represented by a single span (i.e. buffer cannot be refreshed)
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Verifies that SpaceLeft returns zero.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ An opaque struct that represents the current serialization state and is passed along
+ as the serialization proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Creates a WriteContext instance from CodedOutputStream.
+ WARNING: internally this copies the CodedOutputStream's state, so after done with the WriteContext,
+ the CodedOutputStream's state needs to be updated.
+
+
+
+
+ Writes a double field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Primitives for encoding protobuf wire format.
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Given a QWORD which represents a buffer of 4 ASCII chars in machine-endian order,
+ narrows each WORD to a BYTE, then writes the 4-byte result to the output buffer
+ also in machine-endian order.
+
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Encodes and writes a tag.
+
+
+
+
+ Writes an already-encoded tag.
+
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+
+
+
+ Encode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Encode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Writing messages / groups.
+
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+
+
+
+ Writes a group, without a tag.
+
+
+
+
+ Writes a message, without a tag.
+ Message will be written without a length prefix.
+
+
+
+
+ Indicates that certain members on a specified are accessed dynamically,
+ for example through .
+
+
+ This allows tools to understand which members are being accessed during the execution
+ of a program.
+
+ This attribute is valid on members whose type is or .
+
+ When this attribute is applied to a location of type , the assumption is
+ that the string represents a fully qualified type name.
+
+ When this attribute is applied to a class, interface, or struct, the members specified
+ can be accessed dynamically on instances returned from calling
+ on instances of that class, interface, or struct.
+
+ If the attribute is applied to a method it's treated as a special case and it implies
+ the attribute should be applied to the "this" parameter of the method. As such the attribute
+ should only be used on instance methods of types assignable to System.Type (or string, but no methods
+ will use it there).
+
+
+
+
+ Initializes a new instance of the class
+ with the specified member types.
+
+ The types of members dynamically accessed.
+
+
+
+ Gets the which specifies the type
+ of members dynamically accessed.
+
+
+
+
+ Specifies the types of members that are dynamically accessed.
+
+ This enumeration has a attribute that allows a
+ bitwise combination of its member values.
+
+
+
+
+ Specifies no members.
+
+
+
+
+ Specifies the default, parameterless public constructor.
+
+
+
+
+ Specifies all public constructors.
+
+
+
+
+ Specifies all non-public constructors.
+
+
+
+
+ Specifies all public methods.
+
+
+
+
+ Specifies all non-public methods.
+
+
+
+
+ Specifies all public fields.
+
+
+
+
+ Specifies all non-public fields.
+
+
+
+
+ Specifies all public nested types.
+
+
+
+
+ Specifies all non-public nested types.
+
+
+
+
+ Specifies all public properties.
+
+
+
+
+ Specifies all non-public properties.
+
+
+
+
+ Specifies all public events.
+
+
+
+
+ Specifies all non-public events.
+
+
+
+
+ Specifies all interfaces implemented by the type.
+
+
+
+
+ Specifies all members.
+
+
+
+
+ Indicates that the specified method requires dynamic access to code that is not referenced
+ statically, for example through .
+
+
+ This allows tools to understand which methods are unsafe to call when removing unreferenced
+ code from an application.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified message.
+
+
+ A message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets a message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets or sets an optional URL that contains more information about the method,
+ why it requires unreferenced code, and what options a consumer has to deal with it.
+
+
+
+
+ Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
+ single code artifact.
+
+
+ is different than
+ in that it doesn't have a
+ . So it is always preserved in the compiled assembly.
+
+
+
+
+ Initializes a new instance of the
+ class, specifying the category of the tool and the identifier for an analysis rule.
+
+ The category for the attribute.
+ The identifier of the analysis rule the attribute applies to.
+
+
+
+ Gets the category identifying the classification of the attribute.
+
+
+ The property describes the tool or tool analysis category
+ for which a message suppression attribute applies.
+
+
+
+
+ Gets the identifier of the analysis tool rule to be suppressed.
+
+
+ Concatenated together, the and
+ properties form a unique check identifier.
+
+
+
+
+ Gets or sets the scope of the code that is relevant for the attribute.
+
+
+ The Scope property is an optional argument that specifies the metadata scope for which
+ the attribute is relevant.
+
+
+
+
+ Gets or sets a fully qualified path that represents the target of the attribute.
+
+
+ The property is an optional argument identifying the analysis target
+ of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
+ Because it is fully qualified, it can be long, particularly for targets such as parameters.
+ The analysis tool user interface should be capable of automatically formatting the parameter.
+
+
+
+
+ Gets or sets an optional argument expanding on exclusion criteria.
+
+
+ The property is an optional argument that specifies additional
+ exclusion where the literal metadata target is not sufficiently precise. For example,
+ the cannot be applied within a method,
+ and it may be desirable to suppress a violation against a statement in the method that will
+ give a rule violation, but not against all statements in the method.
+
+
+
+
+ Gets or sets the justification for suppressing the code analysis message.
+
+
+
+
diff --git a/packages/K4os.Compression.LZ4.1.3.5/.signature.p7s b/packages/K4os.Compression.LZ4.1.3.5/.signature.p7s
new file mode 100644
index 0000000..64695cd
Binary files /dev/null and b/packages/K4os.Compression.LZ4.1.3.5/.signature.p7s differ
diff --git a/packages/K4os.Compression.LZ4.1.3.5/K4os.Compression.LZ4.1.3.5.nupkg b/packages/K4os.Compression.LZ4.1.3.5/K4os.Compression.LZ4.1.3.5.nupkg
new file mode 100644
index 0000000..fff1fd2
Binary files /dev/null and b/packages/K4os.Compression.LZ4.1.3.5/K4os.Compression.LZ4.1.3.5.nupkg differ
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/net462/K4os.Compression.LZ4.dll b/packages/K4os.Compression.LZ4.1.3.5/lib/net462/K4os.Compression.LZ4.dll
new file mode 100644
index 0000000..0748a24
Binary files /dev/null and b/packages/K4os.Compression.LZ4.1.3.5/lib/net462/K4os.Compression.LZ4.dll differ
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/net462/K4os.Compression.LZ4.xml b/packages/K4os.Compression.LZ4.1.3.5/lib/net462/K4os.Compression.LZ4.xml
new file mode 100644
index 0000000..2ccb426
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.1.3.5/lib/net462/K4os.Compression.LZ4.xml
@@ -0,0 +1,1211 @@
+
+
+
+ K4os.Compression.LZ4
+
+
+
+
+ Action performed by encoder using FlushAndEncode method.
+
+
+
+ Nothing has happened, most likely loading 0 bytes.
+
+
+ Some bytes has been loaded into encoder.
+
+
+ Compression was not possible so bytes has been copied.
+
+
+ Compression succeeded.
+
+
+
+ Interface of LZ4 decoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Bytes already decoded and available to be read.
+ Always smaller than
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded. These bytes can be read with .
+
+ Points to compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ These bytes can be read with .
+
+ Points to uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Reads previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Buffer to write to.
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+ Number of bytes to read.
+
+
+
+ Peeks at previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+
+
+
+ Interface of LZ4 encoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Number of bytes read for compression.
+ Always smaller than
+
+
+ Adds bytes to internal buffer. Increases
+ Source buffer.
+ Source buffer length.
+ Number of bytes topped up. If this function returns 0 it means that buffer
+ is full ( equals ) and
+ should be called to flush it.
+
+
+
+ Encodes bytes in internal buffer (see: , ).
+ If is true then if encoded buffer is bigger than
+ source buffer source bytes are copied instead. In such case returned length is negative.
+
+ Target buffer.
+ Target buffer length.
+ Indicates if copying is allowed.
+ Length of encoded buffer. Negative if bytes are just copied.
+
+
+
+ LZ4 decoder used with independent blocks mode. Please note, that it will fail
+ if input data has been compressed with chained blocks
+ ( and )
+
+
+
+ Creates new instance of block decoder.
+ Block size. Must be equal or greater to one used for compression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Independent block encoder. Produces larger files but uses less memory and
+ gives better performance.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+
+
+
+
+
+
+
+
+ LZ4 decoder handling dependent blocks.
+
+
+ Creates new instance of .
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Static class with factory methods to create LZ4 decoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Block size.
+ Number of extra blocks.
+ LZ4 decoder.
+
+
+
+ Static class with factory method to create LZ4 encoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Compression level.
+ Block size.
+ Number of extra blocks.
+ LZ4 encoder.
+
+
+
+ Base class for LZ4 encoders. Provides basic functionality shared by
+ , ,
+ and encoders. Do not used directly.
+
+
+
+ Creates new instance of encoder.
+ Needs to be true if using dependent blocks.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes single block using appropriate algorithm.
+ Source buffer.
+ Source buffer length.
+ Target buffer.
+ Target buffer length.
+ Number of bytes actually written to target buffer.
+
+
+ Copies current dictionary.
+ Target buffer.
+ Dictionary length.
+ Dictionary length.
+
+
+
+
+
+
+ Functionality of encoders added on top of fixed interface.
+
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer pointer, will be shifted after operation by the number of
+ bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset.
+ Length of buffer.
+ Number of bytes actually loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset, will be increased after operation by the number
+ of bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Number of bytes encoder. If bytes were copied than this value is negative.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer. Will be updated after operation.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer. Will be updated after operation.
+ Length of buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Source buffer length.
+ Target buffer (used to encode into)
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (used to encode into)
+ Offset within target buffer.
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Target buffer (used to encode into)
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Offset within target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset within target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Source buffer length.
+ Target buffer (to drained into).
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (to drained into).
+ Offset within target buffer.
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Target buffer (to drained into).
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ See .
+
+ Decoder.
+ Uncompressed block.
+ Offset in uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded.
+ See .
+
+ Decoder.
+ Compressed block.
+ Offset in compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ LZ4 encoder using dependent blocks with fast compression.
+
+
+
+ Creates new instance of
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 encoder using dependent blocks with high compression.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm selection.
+
+
+ Intel and ARMv7 version of 32 bit algorithm.
+
+
+ Intel version of 64 bit algorithm.
+
+
+ Checks what algorithm should be used (32 vs 64 bit).
+
+
+
+ Existence of this class is an admission of failure.
+ I failed to export internals to test assemblies.
+ Using InternalsVisibleTo work, of course, but with signing (which was requested
+ in https://github.com/MiloszKrajewski/K4os.Compression.LZ4/issues/9) it is
+ absolute PITA. So no, I'm not using InternalsVisibleTo I will just expose this
+ little class with some "redirects" to real internals.
+
+
+
+ Pubternal wrapper for LZ4_stream_t.
+
+
+ Creates new instance of wrapper for LZ4_stream_t.
+
+
+
+
+
+
+ Compresses chunk of data using LZ4_compress_fast_continue.
+
+ Wrapper for LZ4_stream_t
+ Source block address.
+ Target block address.
+ Source block length.
+ Target block length.
+ Acceleration.
+ Number of bytes actually written to target.
+
+
+
+ Naive wrapper around ArrayPool. Makes calls if something should be pooled.
+
+
+
+ Minimum size of the buffer that can be pooled.
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Clear all data.
+ Allocated buffer.
+
+
+
+ Determines if buffer was pooled or not.
+ The logic is quite simple: if buffer is smaller than 512 bytes are pooled.
+
+ Buffer.
+ true if buffer was pooled; false otherwise
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+ Utility class with memory related functions.
+
+
+ 1 KiB
+
+
+ 2 KiB
+
+
+ 4 KiB
+
+
+ 8 KiB
+
+
+ 16 KiB
+
+
+ 32 KiB
+
+
+ 64 KiB
+
+
+ 128 KiB
+
+
+ 256 KiB
+
+
+ 512 KiB
+
+
+ 1 MiB
+
+
+ 4 MiB
+
+
+ Empty byte array.
+
+
+ Checks if process is ran in 32-bit mode.
+
+
+ Rounds integer value up to nearest multiple of step.
+ A value.
+ A step.
+ Value rounded up.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Fills memory block with predefined .
+
+ The target block address.
+ Value to be used.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+ It handle "move" semantic properly handling overlapping blocks properly.
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+ Allocated block of memory. It is NOT initialized with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Fill block of memory with zeroes.
+ Address.
+ Length.
+ Original pointer.
+
+
+ Fills memory block with repeating pattern of a single byte.
+ Address.
+ A pattern.
+ Length.
+ Original pointer.
+
+
+ Allocates block of memory and fills it with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Free memory allocated previously with .
+ Pointer to allocated block.
+
+
+ Clones managed array to unmanaged one.
+ Allows quicker yet less safe unchecked access.
+ Input array.
+ Cloned array.
+
+
+ Reads exactly 1 byte from given address.
+ Address.
+ Byte at given address.
+
+
+ Writes exactly 1 byte to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Represents pinned memory.
+ It either points to unmanaged memory or block of memory from shared array pool.
+ When disposed, it handles it appropriately.
+
+
+
+
+ Maximum size of the buffer that can be pooled from shared array pool.
+
+
+
+ Pointer to block of bytes.
+
+
+ Pointer to block of bytes as span.
+
+
+ Pointer to block of bytes.
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Pinned memory pointer.
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory for one item from shared array pool.
+
+ PinnedMemory pointer.
+ Indicates if block should be zeroed.
+ Type of item.
+
+
+ Fill allocated block of memory with zeros.
+
+
+
+ Releases the memory.
+
+
+
+
+ Skeleton for class with unmanaged resources.
+ Implements but also handles proper release in
+ case was not called.
+
+
+
+ Determines if object was already disposed.
+
+
+ Throws exception is object has been disposed already. Convenience method.
+ Thrown if object is already disposed.
+
+
+ Method releasing unmanaged resources.
+
+
+ Method releasing managed resources.
+
+
+
+ Disposed resources.
+
+ true if dispose was explicitly called,
+ false if called from GC.
+
+
+
+
+
+ Destructor.
+
+
+ Unsafe memory operations.
+
+
+ Reads 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes 4 or 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+ Unsafe memory operations.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Static class exposing LZ4 block compression methods.
+
+
+
+ Version of LZ4 implementation.
+
+
+
+ Enforces 32-bit compression/decompression algorithm even on 64-bit systems.
+ Please note, this property should not be used on regular basis, it just allows
+ to workaround some problems on platforms which do not support 64-bit the same was
+ as Intel (for example: unaligned read/writes).
+
+
+
+ Maximum size after compression.
+ Length of input buffer.
+ Maximum length after compression.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Length of input buffer.
+ Output buffer.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Output buffer.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Dictionary buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer offset.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compression level.
+
+
+ Fast compression.
+
+
+ High compression, level 3.
+
+
+ High compression, level 4.
+
+
+ High compression, level 5.
+
+
+ High compression, level 6.
+
+
+ High compression, level 7.
+
+
+ High compression, level 8.
+
+
+ High compression, level 9.
+
+
+ Optimal compression, level 10.
+
+
+ Optimal compression, level 11.
+
+
+ Maximum compression, level 12.
+
+
+
+ Pickling support with LZ4 compression.
+
+
+ Pickling support with LZ4 compression.
+
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Length of input data.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ The data to inspect.
+ The size in bytes of the data once unpickled.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ Decoded header.
+ The size in bytes of the data once unpickled.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+ You obtain the size of the output buffer by calling .
+
+
+
+
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/net5.0/K4os.Compression.LZ4.dll b/packages/K4os.Compression.LZ4.1.3.5/lib/net5.0/K4os.Compression.LZ4.dll
new file mode 100644
index 0000000..608d5ca
Binary files /dev/null and b/packages/K4os.Compression.LZ4.1.3.5/lib/net5.0/K4os.Compression.LZ4.dll differ
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/net5.0/K4os.Compression.LZ4.xml b/packages/K4os.Compression.LZ4.1.3.5/lib/net5.0/K4os.Compression.LZ4.xml
new file mode 100644
index 0000000..2ccb426
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.1.3.5/lib/net5.0/K4os.Compression.LZ4.xml
@@ -0,0 +1,1211 @@
+
+
+
+ K4os.Compression.LZ4
+
+
+
+
+ Action performed by encoder using FlushAndEncode method.
+
+
+
+ Nothing has happened, most likely loading 0 bytes.
+
+
+ Some bytes has been loaded into encoder.
+
+
+ Compression was not possible so bytes has been copied.
+
+
+ Compression succeeded.
+
+
+
+ Interface of LZ4 decoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Bytes already decoded and available to be read.
+ Always smaller than
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded. These bytes can be read with .
+
+ Points to compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ These bytes can be read with .
+
+ Points to uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Reads previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Buffer to write to.
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+ Number of bytes to read.
+
+
+
+ Peeks at previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+
+
+
+ Interface of LZ4 encoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Number of bytes read for compression.
+ Always smaller than
+
+
+ Adds bytes to internal buffer. Increases
+ Source buffer.
+ Source buffer length.
+ Number of bytes topped up. If this function returns 0 it means that buffer
+ is full ( equals ) and
+ should be called to flush it.
+
+
+
+ Encodes bytes in internal buffer (see: , ).
+ If is true then if encoded buffer is bigger than
+ source buffer source bytes are copied instead. In such case returned length is negative.
+
+ Target buffer.
+ Target buffer length.
+ Indicates if copying is allowed.
+ Length of encoded buffer. Negative if bytes are just copied.
+
+
+
+ LZ4 decoder used with independent blocks mode. Please note, that it will fail
+ if input data has been compressed with chained blocks
+ ( and )
+
+
+
+ Creates new instance of block decoder.
+ Block size. Must be equal or greater to one used for compression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Independent block encoder. Produces larger files but uses less memory and
+ gives better performance.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+
+
+
+
+
+
+
+
+ LZ4 decoder handling dependent blocks.
+
+
+ Creates new instance of .
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Static class with factory methods to create LZ4 decoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Block size.
+ Number of extra blocks.
+ LZ4 decoder.
+
+
+
+ Static class with factory method to create LZ4 encoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Compression level.
+ Block size.
+ Number of extra blocks.
+ LZ4 encoder.
+
+
+
+ Base class for LZ4 encoders. Provides basic functionality shared by
+ , ,
+ and encoders. Do not used directly.
+
+
+
+ Creates new instance of encoder.
+ Needs to be true if using dependent blocks.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes single block using appropriate algorithm.
+ Source buffer.
+ Source buffer length.
+ Target buffer.
+ Target buffer length.
+ Number of bytes actually written to target buffer.
+
+
+ Copies current dictionary.
+ Target buffer.
+ Dictionary length.
+ Dictionary length.
+
+
+
+
+
+
+ Functionality of encoders added on top of fixed interface.
+
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer pointer, will be shifted after operation by the number of
+ bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset.
+ Length of buffer.
+ Number of bytes actually loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset, will be increased after operation by the number
+ of bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Number of bytes encoder. If bytes were copied than this value is negative.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer. Will be updated after operation.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer. Will be updated after operation.
+ Length of buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Source buffer length.
+ Target buffer (used to encode into)
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (used to encode into)
+ Offset within target buffer.
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Target buffer (used to encode into)
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Offset within target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset within target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Source buffer length.
+ Target buffer (to drained into).
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (to drained into).
+ Offset within target buffer.
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Target buffer (to drained into).
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ See .
+
+ Decoder.
+ Uncompressed block.
+ Offset in uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded.
+ See .
+
+ Decoder.
+ Compressed block.
+ Offset in compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ LZ4 encoder using dependent blocks with fast compression.
+
+
+
+ Creates new instance of
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 encoder using dependent blocks with high compression.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm selection.
+
+
+ Intel and ARMv7 version of 32 bit algorithm.
+
+
+ Intel version of 64 bit algorithm.
+
+
+ Checks what algorithm should be used (32 vs 64 bit).
+
+
+
+ Existence of this class is an admission of failure.
+ I failed to export internals to test assemblies.
+ Using InternalsVisibleTo work, of course, but with signing (which was requested
+ in https://github.com/MiloszKrajewski/K4os.Compression.LZ4/issues/9) it is
+ absolute PITA. So no, I'm not using InternalsVisibleTo I will just expose this
+ little class with some "redirects" to real internals.
+
+
+
+ Pubternal wrapper for LZ4_stream_t.
+
+
+ Creates new instance of wrapper for LZ4_stream_t.
+
+
+
+
+
+
+ Compresses chunk of data using LZ4_compress_fast_continue.
+
+ Wrapper for LZ4_stream_t
+ Source block address.
+ Target block address.
+ Source block length.
+ Target block length.
+ Acceleration.
+ Number of bytes actually written to target.
+
+
+
+ Naive wrapper around ArrayPool. Makes calls if something should be pooled.
+
+
+
+ Minimum size of the buffer that can be pooled.
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Clear all data.
+ Allocated buffer.
+
+
+
+ Determines if buffer was pooled or not.
+ The logic is quite simple: if buffer is smaller than 512 bytes are pooled.
+
+ Buffer.
+ true if buffer was pooled; false otherwise
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+ Utility class with memory related functions.
+
+
+ 1 KiB
+
+
+ 2 KiB
+
+
+ 4 KiB
+
+
+ 8 KiB
+
+
+ 16 KiB
+
+
+ 32 KiB
+
+
+ 64 KiB
+
+
+ 128 KiB
+
+
+ 256 KiB
+
+
+ 512 KiB
+
+
+ 1 MiB
+
+
+ 4 MiB
+
+
+ Empty byte array.
+
+
+ Checks if process is ran in 32-bit mode.
+
+
+ Rounds integer value up to nearest multiple of step.
+ A value.
+ A step.
+ Value rounded up.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Fills memory block with predefined .
+
+ The target block address.
+ Value to be used.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+ It handle "move" semantic properly handling overlapping blocks properly.
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+ Allocated block of memory. It is NOT initialized with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Fill block of memory with zeroes.
+ Address.
+ Length.
+ Original pointer.
+
+
+ Fills memory block with repeating pattern of a single byte.
+ Address.
+ A pattern.
+ Length.
+ Original pointer.
+
+
+ Allocates block of memory and fills it with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Free memory allocated previously with .
+ Pointer to allocated block.
+
+
+ Clones managed array to unmanaged one.
+ Allows quicker yet less safe unchecked access.
+ Input array.
+ Cloned array.
+
+
+ Reads exactly 1 byte from given address.
+ Address.
+ Byte at given address.
+
+
+ Writes exactly 1 byte to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Represents pinned memory.
+ It either points to unmanaged memory or block of memory from shared array pool.
+ When disposed, it handles it appropriately.
+
+
+
+
+ Maximum size of the buffer that can be pooled from shared array pool.
+
+
+
+ Pointer to block of bytes.
+
+
+ Pointer to block of bytes as span.
+
+
+ Pointer to block of bytes.
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Pinned memory pointer.
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory for one item from shared array pool.
+
+ PinnedMemory pointer.
+ Indicates if block should be zeroed.
+ Type of item.
+
+
+ Fill allocated block of memory with zeros.
+
+
+
+ Releases the memory.
+
+
+
+
+ Skeleton for class with unmanaged resources.
+ Implements but also handles proper release in
+ case was not called.
+
+
+
+ Determines if object was already disposed.
+
+
+ Throws exception is object has been disposed already. Convenience method.
+ Thrown if object is already disposed.
+
+
+ Method releasing unmanaged resources.
+
+
+ Method releasing managed resources.
+
+
+
+ Disposed resources.
+
+ true if dispose was explicitly called,
+ false if called from GC.
+
+
+
+
+
+ Destructor.
+
+
+ Unsafe memory operations.
+
+
+ Reads 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes 4 or 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+ Unsafe memory operations.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Static class exposing LZ4 block compression methods.
+
+
+
+ Version of LZ4 implementation.
+
+
+
+ Enforces 32-bit compression/decompression algorithm even on 64-bit systems.
+ Please note, this property should not be used on regular basis, it just allows
+ to workaround some problems on platforms which do not support 64-bit the same was
+ as Intel (for example: unaligned read/writes).
+
+
+
+ Maximum size after compression.
+ Length of input buffer.
+ Maximum length after compression.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Length of input buffer.
+ Output buffer.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Output buffer.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Dictionary buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer offset.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compression level.
+
+
+ Fast compression.
+
+
+ High compression, level 3.
+
+
+ High compression, level 4.
+
+
+ High compression, level 5.
+
+
+ High compression, level 6.
+
+
+ High compression, level 7.
+
+
+ High compression, level 8.
+
+
+ High compression, level 9.
+
+
+ Optimal compression, level 10.
+
+
+ Optimal compression, level 11.
+
+
+ Maximum compression, level 12.
+
+
+
+ Pickling support with LZ4 compression.
+
+
+ Pickling support with LZ4 compression.
+
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Length of input data.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ The data to inspect.
+ The size in bytes of the data once unpickled.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ Decoded header.
+ The size in bytes of the data once unpickled.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+ You obtain the size of the output buffer by calling .
+
+
+
+
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/net6.0/K4os.Compression.LZ4.dll b/packages/K4os.Compression.LZ4.1.3.5/lib/net6.0/K4os.Compression.LZ4.dll
new file mode 100644
index 0000000..9b8a0ae
Binary files /dev/null and b/packages/K4os.Compression.LZ4.1.3.5/lib/net6.0/K4os.Compression.LZ4.dll differ
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/net6.0/K4os.Compression.LZ4.xml b/packages/K4os.Compression.LZ4.1.3.5/lib/net6.0/K4os.Compression.LZ4.xml
new file mode 100644
index 0000000..2ccb426
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.1.3.5/lib/net6.0/K4os.Compression.LZ4.xml
@@ -0,0 +1,1211 @@
+
+
+
+ K4os.Compression.LZ4
+
+
+
+
+ Action performed by encoder using FlushAndEncode method.
+
+
+
+ Nothing has happened, most likely loading 0 bytes.
+
+
+ Some bytes has been loaded into encoder.
+
+
+ Compression was not possible so bytes has been copied.
+
+
+ Compression succeeded.
+
+
+
+ Interface of LZ4 decoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Bytes already decoded and available to be read.
+ Always smaller than
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded. These bytes can be read with .
+
+ Points to compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ These bytes can be read with .
+
+ Points to uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Reads previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Buffer to write to.
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+ Number of bytes to read.
+
+
+
+ Peeks at previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+
+
+
+ Interface of LZ4 encoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Number of bytes read for compression.
+ Always smaller than
+
+
+ Adds bytes to internal buffer. Increases
+ Source buffer.
+ Source buffer length.
+ Number of bytes topped up. If this function returns 0 it means that buffer
+ is full ( equals ) and
+ should be called to flush it.
+
+
+
+ Encodes bytes in internal buffer (see: , ).
+ If is true then if encoded buffer is bigger than
+ source buffer source bytes are copied instead. In such case returned length is negative.
+
+ Target buffer.
+ Target buffer length.
+ Indicates if copying is allowed.
+ Length of encoded buffer. Negative if bytes are just copied.
+
+
+
+ LZ4 decoder used with independent blocks mode. Please note, that it will fail
+ if input data has been compressed with chained blocks
+ ( and )
+
+
+
+ Creates new instance of block decoder.
+ Block size. Must be equal or greater to one used for compression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Independent block encoder. Produces larger files but uses less memory and
+ gives better performance.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+
+
+
+
+
+
+
+
+ LZ4 decoder handling dependent blocks.
+
+
+ Creates new instance of .
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Static class with factory methods to create LZ4 decoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Block size.
+ Number of extra blocks.
+ LZ4 decoder.
+
+
+
+ Static class with factory method to create LZ4 encoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Compression level.
+ Block size.
+ Number of extra blocks.
+ LZ4 encoder.
+
+
+
+ Base class for LZ4 encoders. Provides basic functionality shared by
+ , ,
+ and encoders. Do not used directly.
+
+
+
+ Creates new instance of encoder.
+ Needs to be true if using dependent blocks.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes single block using appropriate algorithm.
+ Source buffer.
+ Source buffer length.
+ Target buffer.
+ Target buffer length.
+ Number of bytes actually written to target buffer.
+
+
+ Copies current dictionary.
+ Target buffer.
+ Dictionary length.
+ Dictionary length.
+
+
+
+
+
+
+ Functionality of encoders added on top of fixed interface.
+
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer pointer, will be shifted after operation by the number of
+ bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset.
+ Length of buffer.
+ Number of bytes actually loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset, will be increased after operation by the number
+ of bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Number of bytes encoder. If bytes were copied than this value is negative.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer. Will be updated after operation.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer. Will be updated after operation.
+ Length of buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Source buffer length.
+ Target buffer (used to encode into)
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (used to encode into)
+ Offset within target buffer.
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Target buffer (used to encode into)
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Offset within target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset within target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Source buffer length.
+ Target buffer (to drained into).
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (to drained into).
+ Offset within target buffer.
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Target buffer (to drained into).
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ See .
+
+ Decoder.
+ Uncompressed block.
+ Offset in uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded.
+ See .
+
+ Decoder.
+ Compressed block.
+ Offset in compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ LZ4 encoder using dependent blocks with fast compression.
+
+
+
+ Creates new instance of
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 encoder using dependent blocks with high compression.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm selection.
+
+
+ Intel and ARMv7 version of 32 bit algorithm.
+
+
+ Intel version of 64 bit algorithm.
+
+
+ Checks what algorithm should be used (32 vs 64 bit).
+
+
+
+ Existence of this class is an admission of failure.
+ I failed to export internals to test assemblies.
+ Using InternalsVisibleTo work, of course, but with signing (which was requested
+ in https://github.com/MiloszKrajewski/K4os.Compression.LZ4/issues/9) it is
+ absolute PITA. So no, I'm not using InternalsVisibleTo I will just expose this
+ little class with some "redirects" to real internals.
+
+
+
+ Pubternal wrapper for LZ4_stream_t.
+
+
+ Creates new instance of wrapper for LZ4_stream_t.
+
+
+
+
+
+
+ Compresses chunk of data using LZ4_compress_fast_continue.
+
+ Wrapper for LZ4_stream_t
+ Source block address.
+ Target block address.
+ Source block length.
+ Target block length.
+ Acceleration.
+ Number of bytes actually written to target.
+
+
+
+ Naive wrapper around ArrayPool. Makes calls if something should be pooled.
+
+
+
+ Minimum size of the buffer that can be pooled.
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Clear all data.
+ Allocated buffer.
+
+
+
+ Determines if buffer was pooled or not.
+ The logic is quite simple: if buffer is smaller than 512 bytes are pooled.
+
+ Buffer.
+ true if buffer was pooled; false otherwise
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+ Utility class with memory related functions.
+
+
+ 1 KiB
+
+
+ 2 KiB
+
+
+ 4 KiB
+
+
+ 8 KiB
+
+
+ 16 KiB
+
+
+ 32 KiB
+
+
+ 64 KiB
+
+
+ 128 KiB
+
+
+ 256 KiB
+
+
+ 512 KiB
+
+
+ 1 MiB
+
+
+ 4 MiB
+
+
+ Empty byte array.
+
+
+ Checks if process is ran in 32-bit mode.
+
+
+ Rounds integer value up to nearest multiple of step.
+ A value.
+ A step.
+ Value rounded up.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Fills memory block with predefined .
+
+ The target block address.
+ Value to be used.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+ It handle "move" semantic properly handling overlapping blocks properly.
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+ Allocated block of memory. It is NOT initialized with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Fill block of memory with zeroes.
+ Address.
+ Length.
+ Original pointer.
+
+
+ Fills memory block with repeating pattern of a single byte.
+ Address.
+ A pattern.
+ Length.
+ Original pointer.
+
+
+ Allocates block of memory and fills it with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Free memory allocated previously with .
+ Pointer to allocated block.
+
+
+ Clones managed array to unmanaged one.
+ Allows quicker yet less safe unchecked access.
+ Input array.
+ Cloned array.
+
+
+ Reads exactly 1 byte from given address.
+ Address.
+ Byte at given address.
+
+
+ Writes exactly 1 byte to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Represents pinned memory.
+ It either points to unmanaged memory or block of memory from shared array pool.
+ When disposed, it handles it appropriately.
+
+
+
+
+ Maximum size of the buffer that can be pooled from shared array pool.
+
+
+
+ Pointer to block of bytes.
+
+
+ Pointer to block of bytes as span.
+
+
+ Pointer to block of bytes.
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Pinned memory pointer.
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory for one item from shared array pool.
+
+ PinnedMemory pointer.
+ Indicates if block should be zeroed.
+ Type of item.
+
+
+ Fill allocated block of memory with zeros.
+
+
+
+ Releases the memory.
+
+
+
+
+ Skeleton for class with unmanaged resources.
+ Implements but also handles proper release in
+ case was not called.
+
+
+
+ Determines if object was already disposed.
+
+
+ Throws exception is object has been disposed already. Convenience method.
+ Thrown if object is already disposed.
+
+
+ Method releasing unmanaged resources.
+
+
+ Method releasing managed resources.
+
+
+
+ Disposed resources.
+
+ true if dispose was explicitly called,
+ false if called from GC.
+
+
+
+
+
+ Destructor.
+
+
+ Unsafe memory operations.
+
+
+ Reads 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes 4 or 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+ Unsafe memory operations.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Static class exposing LZ4 block compression methods.
+
+
+
+ Version of LZ4 implementation.
+
+
+
+ Enforces 32-bit compression/decompression algorithm even on 64-bit systems.
+ Please note, this property should not be used on regular basis, it just allows
+ to workaround some problems on platforms which do not support 64-bit the same was
+ as Intel (for example: unaligned read/writes).
+
+
+
+ Maximum size after compression.
+ Length of input buffer.
+ Maximum length after compression.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Length of input buffer.
+ Output buffer.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Output buffer.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Dictionary buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer offset.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compression level.
+
+
+ Fast compression.
+
+
+ High compression, level 3.
+
+
+ High compression, level 4.
+
+
+ High compression, level 5.
+
+
+ High compression, level 6.
+
+
+ High compression, level 7.
+
+
+ High compression, level 8.
+
+
+ High compression, level 9.
+
+
+ Optimal compression, level 10.
+
+
+ Optimal compression, level 11.
+
+
+ Maximum compression, level 12.
+
+
+
+ Pickling support with LZ4 compression.
+
+
+ Pickling support with LZ4 compression.
+
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Length of input data.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ The data to inspect.
+ The size in bytes of the data once unpickled.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ Decoded header.
+ The size in bytes of the data once unpickled.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+ You obtain the size of the output buffer by calling .
+
+
+
+
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.dll b/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.dll
new file mode 100644
index 0000000..95c9a40
Binary files /dev/null and b/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.dll differ
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.xml b/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.xml
new file mode 100644
index 0000000..2ccb426
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.xml
@@ -0,0 +1,1211 @@
+
+
+
+ K4os.Compression.LZ4
+
+
+
+
+ Action performed by encoder using FlushAndEncode method.
+
+
+
+ Nothing has happened, most likely loading 0 bytes.
+
+
+ Some bytes has been loaded into encoder.
+
+
+ Compression was not possible so bytes has been copied.
+
+
+ Compression succeeded.
+
+
+
+ Interface of LZ4 decoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Bytes already decoded and available to be read.
+ Always smaller than
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded. These bytes can be read with .
+
+ Points to compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ These bytes can be read with .
+
+ Points to uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Reads previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Buffer to write to.
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+ Number of bytes to read.
+
+
+
+ Peeks at previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+
+
+
+ Interface of LZ4 encoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Number of bytes read for compression.
+ Always smaller than
+
+
+ Adds bytes to internal buffer. Increases
+ Source buffer.
+ Source buffer length.
+ Number of bytes topped up. If this function returns 0 it means that buffer
+ is full ( equals ) and
+ should be called to flush it.
+
+
+
+ Encodes bytes in internal buffer (see: , ).
+ If is true then if encoded buffer is bigger than
+ source buffer source bytes are copied instead. In such case returned length is negative.
+
+ Target buffer.
+ Target buffer length.
+ Indicates if copying is allowed.
+ Length of encoded buffer. Negative if bytes are just copied.
+
+
+
+ LZ4 decoder used with independent blocks mode. Please note, that it will fail
+ if input data has been compressed with chained blocks
+ ( and )
+
+
+
+ Creates new instance of block decoder.
+ Block size. Must be equal or greater to one used for compression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Independent block encoder. Produces larger files but uses less memory and
+ gives better performance.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+
+
+
+
+
+
+
+
+ LZ4 decoder handling dependent blocks.
+
+
+ Creates new instance of .
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Static class with factory methods to create LZ4 decoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Block size.
+ Number of extra blocks.
+ LZ4 decoder.
+
+
+
+ Static class with factory method to create LZ4 encoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Compression level.
+ Block size.
+ Number of extra blocks.
+ LZ4 encoder.
+
+
+
+ Base class for LZ4 encoders. Provides basic functionality shared by
+ , ,
+ and encoders. Do not used directly.
+
+
+
+ Creates new instance of encoder.
+ Needs to be true if using dependent blocks.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes single block using appropriate algorithm.
+ Source buffer.
+ Source buffer length.
+ Target buffer.
+ Target buffer length.
+ Number of bytes actually written to target buffer.
+
+
+ Copies current dictionary.
+ Target buffer.
+ Dictionary length.
+ Dictionary length.
+
+
+
+
+
+
+ Functionality of encoders added on top of fixed interface.
+
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer pointer, will be shifted after operation by the number of
+ bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset.
+ Length of buffer.
+ Number of bytes actually loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset, will be increased after operation by the number
+ of bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Number of bytes encoder. If bytes were copied than this value is negative.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer. Will be updated after operation.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer. Will be updated after operation.
+ Length of buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Source buffer length.
+ Target buffer (used to encode into)
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (used to encode into)
+ Offset within target buffer.
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Target buffer (used to encode into)
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Offset within target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset within target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Source buffer length.
+ Target buffer (to drained into).
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (to drained into).
+ Offset within target buffer.
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Target buffer (to drained into).
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ See .
+
+ Decoder.
+ Uncompressed block.
+ Offset in uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded.
+ See .
+
+ Decoder.
+ Compressed block.
+ Offset in compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ LZ4 encoder using dependent blocks with fast compression.
+
+
+
+ Creates new instance of
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 encoder using dependent blocks with high compression.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm selection.
+
+
+ Intel and ARMv7 version of 32 bit algorithm.
+
+
+ Intel version of 64 bit algorithm.
+
+
+ Checks what algorithm should be used (32 vs 64 bit).
+
+
+
+ Existence of this class is an admission of failure.
+ I failed to export internals to test assemblies.
+ Using InternalsVisibleTo work, of course, but with signing (which was requested
+ in https://github.com/MiloszKrajewski/K4os.Compression.LZ4/issues/9) it is
+ absolute PITA. So no, I'm not using InternalsVisibleTo I will just expose this
+ little class with some "redirects" to real internals.
+
+
+
+ Pubternal wrapper for LZ4_stream_t.
+
+
+ Creates new instance of wrapper for LZ4_stream_t.
+
+
+
+
+
+
+ Compresses chunk of data using LZ4_compress_fast_continue.
+
+ Wrapper for LZ4_stream_t
+ Source block address.
+ Target block address.
+ Source block length.
+ Target block length.
+ Acceleration.
+ Number of bytes actually written to target.
+
+
+
+ Naive wrapper around ArrayPool. Makes calls if something should be pooled.
+
+
+
+ Minimum size of the buffer that can be pooled.
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Clear all data.
+ Allocated buffer.
+
+
+
+ Determines if buffer was pooled or not.
+ The logic is quite simple: if buffer is smaller than 512 bytes are pooled.
+
+ Buffer.
+ true if buffer was pooled; false otherwise
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+ Utility class with memory related functions.
+
+
+ 1 KiB
+
+
+ 2 KiB
+
+
+ 4 KiB
+
+
+ 8 KiB
+
+
+ 16 KiB
+
+
+ 32 KiB
+
+
+ 64 KiB
+
+
+ 128 KiB
+
+
+ 256 KiB
+
+
+ 512 KiB
+
+
+ 1 MiB
+
+
+ 4 MiB
+
+
+ Empty byte array.
+
+
+ Checks if process is ran in 32-bit mode.
+
+
+ Rounds integer value up to nearest multiple of step.
+ A value.
+ A step.
+ Value rounded up.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Fills memory block with predefined .
+
+ The target block address.
+ Value to be used.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+ It handle "move" semantic properly handling overlapping blocks properly.
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+ Allocated block of memory. It is NOT initialized with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Fill block of memory with zeroes.
+ Address.
+ Length.
+ Original pointer.
+
+
+ Fills memory block with repeating pattern of a single byte.
+ Address.
+ A pattern.
+ Length.
+ Original pointer.
+
+
+ Allocates block of memory and fills it with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Free memory allocated previously with .
+ Pointer to allocated block.
+
+
+ Clones managed array to unmanaged one.
+ Allows quicker yet less safe unchecked access.
+ Input array.
+ Cloned array.
+
+
+ Reads exactly 1 byte from given address.
+ Address.
+ Byte at given address.
+
+
+ Writes exactly 1 byte to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Represents pinned memory.
+ It either points to unmanaged memory or block of memory from shared array pool.
+ When disposed, it handles it appropriately.
+
+
+
+
+ Maximum size of the buffer that can be pooled from shared array pool.
+
+
+
+ Pointer to block of bytes.
+
+
+ Pointer to block of bytes as span.
+
+
+ Pointer to block of bytes.
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Pinned memory pointer.
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory for one item from shared array pool.
+
+ PinnedMemory pointer.
+ Indicates if block should be zeroed.
+ Type of item.
+
+
+ Fill allocated block of memory with zeros.
+
+
+
+ Releases the memory.
+
+
+
+
+ Skeleton for class with unmanaged resources.
+ Implements but also handles proper release in
+ case was not called.
+
+
+
+ Determines if object was already disposed.
+
+
+ Throws exception is object has been disposed already. Convenience method.
+ Thrown if object is already disposed.
+
+
+ Method releasing unmanaged resources.
+
+
+ Method releasing managed resources.
+
+
+
+ Disposed resources.
+
+ true if dispose was explicitly called,
+ false if called from GC.
+
+
+
+
+
+ Destructor.
+
+
+ Unsafe memory operations.
+
+
+ Reads 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes 4 or 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+ Unsafe memory operations.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Static class exposing LZ4 block compression methods.
+
+
+
+ Version of LZ4 implementation.
+
+
+
+ Enforces 32-bit compression/decompression algorithm even on 64-bit systems.
+ Please note, this property should not be used on regular basis, it just allows
+ to workaround some problems on platforms which do not support 64-bit the same was
+ as Intel (for example: unaligned read/writes).
+
+
+
+ Maximum size after compression.
+ Length of input buffer.
+ Maximum length after compression.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Length of input buffer.
+ Output buffer.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Output buffer.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Dictionary buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer offset.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compression level.
+
+
+ Fast compression.
+
+
+ High compression, level 3.
+
+
+ High compression, level 4.
+
+
+ High compression, level 5.
+
+
+ High compression, level 6.
+
+
+ High compression, level 7.
+
+
+ High compression, level 8.
+
+
+ High compression, level 9.
+
+
+ Optimal compression, level 10.
+
+
+ Optimal compression, level 11.
+
+
+ Maximum compression, level 12.
+
+
+
+ Pickling support with LZ4 compression.
+
+
+ Pickling support with LZ4 compression.
+
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Length of input data.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ The data to inspect.
+ The size in bytes of the data once unpickled.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ Decoded header.
+ The size in bytes of the data once unpickled.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+ You obtain the size of the output buffer by calling .
+
+
+
+
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.dll b/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.dll
new file mode 100644
index 0000000..345b16f
Binary files /dev/null and b/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.dll differ
diff --git a/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.xml b/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.xml
new file mode 100644
index 0000000..2ccb426
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.xml
@@ -0,0 +1,1211 @@
+
+
+
+ K4os.Compression.LZ4
+
+
+
+
+ Action performed by encoder using FlushAndEncode method.
+
+
+
+ Nothing has happened, most likely loading 0 bytes.
+
+
+ Some bytes has been loaded into encoder.
+
+
+ Compression was not possible so bytes has been copied.
+
+
+ Compression succeeded.
+
+
+
+ Interface of LZ4 decoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Bytes already decoded and available to be read.
+ Always smaller than
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded. These bytes can be read with .
+
+ Points to compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ These bytes can be read with .
+
+ Points to uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Reads previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Buffer to write to.
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+ Number of bytes to read.
+
+
+
+ Peeks at previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+
+
+
+ Interface of LZ4 encoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Number of bytes read for compression.
+ Always smaller than
+
+
+ Adds bytes to internal buffer. Increases
+ Source buffer.
+ Source buffer length.
+ Number of bytes topped up. If this function returns 0 it means that buffer
+ is full ( equals ) and
+ should be called to flush it.
+
+
+
+ Encodes bytes in internal buffer (see: , ).
+ If is true then if encoded buffer is bigger than
+ source buffer source bytes are copied instead. In such case returned length is negative.
+
+ Target buffer.
+ Target buffer length.
+ Indicates if copying is allowed.
+ Length of encoded buffer. Negative if bytes are just copied.
+
+
+
+ LZ4 decoder used with independent blocks mode. Please note, that it will fail
+ if input data has been compressed with chained blocks
+ ( and )
+
+
+
+ Creates new instance of block decoder.
+ Block size. Must be equal or greater to one used for compression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Independent block encoder. Produces larger files but uses less memory and
+ gives better performance.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+
+
+
+
+
+
+
+
+ LZ4 decoder handling dependent blocks.
+
+
+ Creates new instance of .
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Static class with factory methods to create LZ4 decoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Block size.
+ Number of extra blocks.
+ LZ4 decoder.
+
+
+
+ Static class with factory method to create LZ4 encoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Compression level.
+ Block size.
+ Number of extra blocks.
+ LZ4 encoder.
+
+
+
+ Base class for LZ4 encoders. Provides basic functionality shared by
+ , ,
+ and encoders. Do not used directly.
+
+
+
+ Creates new instance of encoder.
+ Needs to be true if using dependent blocks.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes single block using appropriate algorithm.
+ Source buffer.
+ Source buffer length.
+ Target buffer.
+ Target buffer length.
+ Number of bytes actually written to target buffer.
+
+
+ Copies current dictionary.
+ Target buffer.
+ Dictionary length.
+ Dictionary length.
+
+
+
+
+
+
+ Functionality of encoders added on top of fixed interface.
+
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer pointer, will be shifted after operation by the number of
+ bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset.
+ Length of buffer.
+ Number of bytes actually loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset, will be increased after operation by the number
+ of bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Number of bytes encoder. If bytes were copied than this value is negative.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer. Will be updated after operation.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer. Will be updated after operation.
+ Length of buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Source buffer length.
+ Target buffer (used to encode into)
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (used to encode into)
+ Offset within target buffer.
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Target buffer (used to encode into)
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Offset within target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset within target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Source buffer length.
+ Target buffer (to drained into).
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (to drained into).
+ Offset within target buffer.
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Target buffer (to drained into).
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ See .
+
+ Decoder.
+ Uncompressed block.
+ Offset in uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded.
+ See .
+
+ Decoder.
+ Compressed block.
+ Offset in compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ LZ4 encoder using dependent blocks with fast compression.
+
+
+
+ Creates new instance of
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 encoder using dependent blocks with high compression.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm selection.
+
+
+ Intel and ARMv7 version of 32 bit algorithm.
+
+
+ Intel version of 64 bit algorithm.
+
+
+ Checks what algorithm should be used (32 vs 64 bit).
+
+
+
+ Existence of this class is an admission of failure.
+ I failed to export internals to test assemblies.
+ Using InternalsVisibleTo work, of course, but with signing (which was requested
+ in https://github.com/MiloszKrajewski/K4os.Compression.LZ4/issues/9) it is
+ absolute PITA. So no, I'm not using InternalsVisibleTo I will just expose this
+ little class with some "redirects" to real internals.
+
+
+
+ Pubternal wrapper for LZ4_stream_t.
+
+
+ Creates new instance of wrapper for LZ4_stream_t.
+
+
+
+
+
+
+ Compresses chunk of data using LZ4_compress_fast_continue.
+
+ Wrapper for LZ4_stream_t
+ Source block address.
+ Target block address.
+ Source block length.
+ Target block length.
+ Acceleration.
+ Number of bytes actually written to target.
+
+
+
+ Naive wrapper around ArrayPool. Makes calls if something should be pooled.
+
+
+
+ Minimum size of the buffer that can be pooled.
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Clear all data.
+ Allocated buffer.
+
+
+
+ Determines if buffer was pooled or not.
+ The logic is quite simple: if buffer is smaller than 512 bytes are pooled.
+
+ Buffer.
+ true if buffer was pooled; false otherwise
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+ Utility class with memory related functions.
+
+
+ 1 KiB
+
+
+ 2 KiB
+
+
+ 4 KiB
+
+
+ 8 KiB
+
+
+ 16 KiB
+
+
+ 32 KiB
+
+
+ 64 KiB
+
+
+ 128 KiB
+
+
+ 256 KiB
+
+
+ 512 KiB
+
+
+ 1 MiB
+
+
+ 4 MiB
+
+
+ Empty byte array.
+
+
+ Checks if process is ran in 32-bit mode.
+
+
+ Rounds integer value up to nearest multiple of step.
+ A value.
+ A step.
+ Value rounded up.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Fills memory block with predefined .
+
+ The target block address.
+ Value to be used.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+ It handle "move" semantic properly handling overlapping blocks properly.
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+ Allocated block of memory. It is NOT initialized with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Fill block of memory with zeroes.
+ Address.
+ Length.
+ Original pointer.
+
+
+ Fills memory block with repeating pattern of a single byte.
+ Address.
+ A pattern.
+ Length.
+ Original pointer.
+
+
+ Allocates block of memory and fills it with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Free memory allocated previously with .
+ Pointer to allocated block.
+
+
+ Clones managed array to unmanaged one.
+ Allows quicker yet less safe unchecked access.
+ Input array.
+ Cloned array.
+
+
+ Reads exactly 1 byte from given address.
+ Address.
+ Byte at given address.
+
+
+ Writes exactly 1 byte to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Represents pinned memory.
+ It either points to unmanaged memory or block of memory from shared array pool.
+ When disposed, it handles it appropriately.
+
+
+
+
+ Maximum size of the buffer that can be pooled from shared array pool.
+
+
+
+ Pointer to block of bytes.
+
+
+ Pointer to block of bytes as span.
+
+
+ Pointer to block of bytes.
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Pinned memory pointer.
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory for one item from shared array pool.
+
+ PinnedMemory pointer.
+ Indicates if block should be zeroed.
+ Type of item.
+
+
+ Fill allocated block of memory with zeros.
+
+
+
+ Releases the memory.
+
+
+
+
+ Skeleton for class with unmanaged resources.
+ Implements but also handles proper release in
+ case was not called.
+
+
+
+ Determines if object was already disposed.
+
+
+ Throws exception is object has been disposed already. Convenience method.
+ Thrown if object is already disposed.
+
+
+ Method releasing unmanaged resources.
+
+
+ Method releasing managed resources.
+
+
+
+ Disposed resources.
+
+ true if dispose was explicitly called,
+ false if called from GC.
+
+
+
+
+
+ Destructor.
+
+
+ Unsafe memory operations.
+
+
+ Reads 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes 4 or 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+ Unsafe memory operations.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Static class exposing LZ4 block compression methods.
+
+
+
+ Version of LZ4 implementation.
+
+
+
+ Enforces 32-bit compression/decompression algorithm even on 64-bit systems.
+ Please note, this property should not be used on regular basis, it just allows
+ to workaround some problems on platforms which do not support 64-bit the same was
+ as Intel (for example: unaligned read/writes).
+
+
+
+ Maximum size after compression.
+ Length of input buffer.
+ Maximum length after compression.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Length of input buffer.
+ Output buffer.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Output buffer.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Dictionary buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer offset.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compression level.
+
+
+ Fast compression.
+
+
+ High compression, level 3.
+
+
+ High compression, level 4.
+
+
+ High compression, level 5.
+
+
+ High compression, level 6.
+
+
+ High compression, level 7.
+
+
+ High compression, level 8.
+
+
+ High compression, level 9.
+
+
+ Optimal compression, level 10.
+
+
+ Optimal compression, level 11.
+
+
+ Maximum compression, level 12.
+
+
+
+ Pickling support with LZ4 compression.
+
+
+ Pickling support with LZ4 compression.
+
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Length of input data.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ The data to inspect.
+ The size in bytes of the data once unpickled.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ Decoded header.
+ The size in bytes of the data once unpickled.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+ You obtain the size of the output buffer by calling .
+
+
+
+
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/.signature.p7s b/packages/K4os.Compression.LZ4.Streams.1.3.5/.signature.p7s
new file mode 100644
index 0000000..5f6eb43
Binary files /dev/null and b/packages/K4os.Compression.LZ4.Streams.1.3.5/.signature.p7s differ
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/K4os.Compression.LZ4.Streams.1.3.5.nupkg b/packages/K4os.Compression.LZ4.Streams.1.3.5/K4os.Compression.LZ4.Streams.1.3.5.nupkg
new file mode 100644
index 0000000..575b402
Binary files /dev/null and b/packages/K4os.Compression.LZ4.Streams.1.3.5/K4os.Compression.LZ4.Streams.1.3.5.nupkg differ
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net462/K4os.Compression.LZ4.Streams.dll b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net462/K4os.Compression.LZ4.Streams.dll
new file mode 100644
index 0000000..05b9108
Binary files /dev/null and b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net462/K4os.Compression.LZ4.Streams.dll differ
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net462/K4os.Compression.LZ4.Streams.xml b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net462/K4os.Compression.LZ4.Streams.xml
new file mode 100644
index 0000000..0686e4b
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net462/K4os.Compression.LZ4.Streams.xml
@@ -0,0 +1,1630 @@
+
+
+
+ K4os.Compression.LZ4.Streams
+
+
+
+
+ Generic interface for frame/stream decoder for LZ4.
+
+
+
+
+ Opens frame for reading. Please note, this method is not needed as it will be
+ called automatically, but it can be used to quickly check if frame is valid.
+
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Cancellation token.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Gets the length of the frame content if it was provided when content was encoded.
+ Frame length, or null
+
+
+ Async version of .
+ Cancellation token.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ A byte, or -1 if end of stream.
+
+
+ Reads one byte from LZ4 stream.
+ Cancellation token.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Cancellation token.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Returns how many bytes in has been read from stream so far.
+ Number of bytes read in total.
+
+
+ Closes the stream, releases allocated memory.
+
+
+
+ Generic interface for LZ4 frame/stream writer.
+
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Cancellation token.
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Byte to be written.
+
+
+ Writes one byte to stream.
+ Cancellation token.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Byte buffer.
+
+
+ Writes multiple bytes to stream.
+ Cancellation token.
+ Byte buffer.
+
+
+ Gets number of bytes written.
+ Total number of bytes (before compression).
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Cancellation token.
+
+
+
+ Stream reader interface. It is an adapter for all stream-like structures.
+
+ Stream state.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Number of bytes actually read.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Cancellation token.
+ containing new stream state,
+ and number of bytes actually read..
+
+
+
+ Generic stream writer interface.
+ When implementing custom compression target or decompression source you need to implement
+ this adapter. Please note, that this adapter can be implemented as class or
+ readonly struct. If implemented as struct it cannot have mutable state
+ as it will be lost. Immutable state is allowed but strongly discouraged.
+ Use instead.
+
+ Mutable part of stream state.
+
+
+ Indicates that writer can and should flush after frame.
+ Please note, flushing may have negative performance effect but may also lead to
+ better interactivity between writer and reader, as reader will get new block
+ available as soon as possible.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+ New stream state.
+
+
+ Number of bytes read.
+
+
+
+ Helper methods to create
+
+
+
+
+ Creates read result, composed of new stream state and bytes read.
+
+ Stream state.
+ Bytes read.
+ Stream state.
+ Read result.
+
+
+
+ Stream adapter for any class implementing .
+ It takes actual class, not interface, so it can use struct implementations
+ of for performance reasons.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+ Type implementing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ Copies bytes from span to buffer. Performs all length checks.
+
+ Head offset of .
+ Target buffer.
+ Offset in target buffer.
+ Number of bytes to copy.
+ Number of bytes actually copied.
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Memory buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Naive and simplistic implementation of adapter for .
+ It might be improved in many ways I believe, but it gives some starting point.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+
+
+
+
+ Creates new instance of .
+
+ Memory span.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Empty record equivalent to Unit/Void.
+ Works as placeholder type used when working with generic interfaces which do require type,
+ but implementation needs none.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe reader.
+
+
+
+
+
+
+
+
+
+ LZ4 stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new stream adapter for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unsafe version of . It is unsafe as it stores raw memory pointer
+ so memory it points to must be pinned. It allows reading and writing straight to
+ unmanaged memory but must be used carefully.
+ NOTE: If you don't understand what has been said above - don't use it. Misuse of this
+ struct may lead to unpredictable errors and memory corruption.
+
+
+
+ Pointer to the first byte of the span.
+
+
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from given pointer and length.
+
+ Pointer to the first byte of the span.
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from raw pointer.
+
+ Pointer block of bytes.
+ Length of the block.
+ New .
+
+
+
+ Converted to .
+
+
+
+
+ Utility methods for LZ4 streams.
+
+
+
+
+ Creates using .
+
+ LZ4 descriptor.
+ Compression level.
+ Additional memory for encoder.
+ Encoder.
+
+
+
+ Creates using and .
+
+ LZ4 descriptor.
+ Encoder settings.
+ Encoder.
+
+
+
+ Create using .
+
+ Descriptor.
+ Extra memory (may improves speed, but creates memory pressure).
+ .
+
+
+
+ Create using and .
+
+ Descriptor.
+ Settings.
+ .
+
+
+
+ Creates from .
+
+ Settings.
+ LZ4 Descriptor.
+
+
+ Async version of .
+ Decoder.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Decoder.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ Decoder.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Decoder.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Encoder.
+ true if frame has been opened, or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Encoder.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Encoder.
+ Byte buffer.
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Encoder.
+
+
+
+ Copies all bytes from into .
+
+ Frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ LZ4 frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Wraps as .
+
+ LZ4 frame reader.
+ Indicates that frame reader should be left open even if stream is
+ disposed.
+ Indicates that data should be provided to reader as quick as
+ possible, instead of waiting for whole block to be read.
+ stream wrapper.
+
+
+
+ Wraps as .
+
+ LZ4 frame writer.
+ Indicates that frame writer should be left open even if stream is
+ disposed.
+ stream wrapper.
+
+
+
+ LZ4 Decompression stream handling.
+
+
+
+ Creates new instance .
+ Inner stream.
+ Inner stream initial state.
+ Decoder factory.
+
+
+
+ Exposes internal stream state. Existence of this property is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the decoder. Consecutive attempts to read will fail.
+
+ true is stream is being disposed by user,
+ true is by garbage collector.
+
+
+
+ Releases unmanaged resources.
+
+
+
+
+ Releases unmanaged resources.
+
+ Task indicating operation is finished.
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Bytes span.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Memory buffer.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Byte sequence.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to read from.
+ Leave stream open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+ Disposes the reader.
+
+ true if user is disposing it; false if it has been triggered by garbage collector
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe to be read.
+ Leave pipe open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+
+
+
+
+
+
+ wrapper for .
+
+
+
+
+ Creates new instance of .
+
+ LZ4 frame reader.
+ Leave underlying stream open after disposing this stream.
+ Use interactive mode; return bytes as soon as they available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 stream encoder.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ Inner stream initial state.
+ LZ4 Encoder factory.
+ LZ4 settings.
+
+
+
+ Exposes internal stream state. Existence of this field is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the stream and releases all resources.
+
+ true if called by user; false when called by garbag collector.
+
+
+
+
+
+
+ Releases all unmanaged resources.
+
+
+
+
+ Releases all unmanaged resources.
+
+ Task indicating completion of the operation.
+
+
+
+ implementation for
+
+ Type of buffer writer.
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Current state of buffer writer.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Memory block where data will be written.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+ is a wrapper around that
+ can be stored in a field. Please note: it makes it unsafe and address needs to be pinned,
+ one way or another.
+
+
+
+
+ Creates new instance of .
+
+ Span to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to write to.
+ Leave stream open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer to write to.
+ Leave pipe open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ Adapter to make look like .
+
+
+
+ Creates new instance of .
+ Underlying frame encoder.
+ Indicates should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 Frame descriptor.
+
+
+
+ Content length. Not always known.
+
+
+ Indicates if content checksum is provided.
+
+
+ Indicates if blocks are chained (dependent) or not (independent).
+
+
+ Indicates if block checksums are provided.
+
+
+ Dictionary id. May be null.
+
+
+ Block size.
+
+
+
+ Completely empty class to do nothing.
+ It is used internally instead of CancellationToken to make sure
+ blocking operations are easily distinguishable from async ones
+ (you cannot call blocking operation by accident as they *require* EmptyToken).
+
+
+
+
+ Base class for all compatible adapters.
+
+ Type of resource stream adapter if for.
+
+
+
+ Creates new instance of .
+
+ Wrapped resource.
+ Do not dispose inner resource after stream is disposed.
+
+
+ Wrapped resource.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream essentials when wrapping another stream.
+ You most likely should not use it but it needs to be public as it is inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoder settings.
+
+
+
+ Extra memory for decompression.
+
+
+
+ LZ4 frame decoder stream.
+
+
+
+
+ Creates LZ4 decoder stream.
+
+ Inner stream, the stream compressed data is coming from..
+ Decoder factory.
+ Leave inner stream open after this stream is disposed.
+ Interactive mode, provide bytes as soon as they are available; don't wait for full block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 frame descriptor.
+
+
+
+ Content length (if available).
+
+
+ Indicates if content checksum if present.
+
+
+ Indicates if blocks are chained.
+
+
+ Indicates if block checksums are present.
+
+
+ Dictionary id (or null).
+
+
+ Block size.
+
+
+ Creates new instance of .
+ Content length.
+ Content checksum flag.
+ Chaining flag.
+ Block checksum flag.
+ Dictionary id.
+ Block size.
+
+
+ Creates new instance of .
+ Descriptor to copy.
+
+
+
+ LZ4 encoder settings.
+
+
+
+
+ Content length. It is not enforced, it can be set to any value, but it will be
+ written to the stream so it can be used while decoding. If you don't know the length
+ just leave default value.
+
+
+
+
+ Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
+ (with chaining) provide better compression ratio but are a little but slower and take
+ more memory.
+
+
+
+
+ Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
+ and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
+ better.
+
+
+
+ Indicates is content checksum should be included.
+
+
+ Indicates if block checksum should be included.
+
+
+ Dictionary id. Not implemented yet.
+
+
+ Compression level.
+
+
+ Extra memory (for the process, more is usually better).
+
+
+
+ LZ4 frame encoder stream.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ LZ4 Descriptor.
+ Function which will take descriptor and return
+ appropriate encoder.
+ Indicates if stream should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 factory methods to encode/decode anything which can be represented as a stream-like object.
+ Please note, to avoid all the complexity of dealing with streams, it uses
+ and as stream abstractions.
+
+
+
+ Creates decompression stream on top of inner stream.
+ Span to read from.
+ Buffer to write to.
+ Extra memory used for decompression.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Writes bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Encoder settings.
+ Leave target stream open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Compression level.
+ Extra memory for encoder.
+ Leave target stream open after encoder is disposed.
+
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Encoder settings.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Compression level.
+ Extra memory for encoder.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Utility class with factory methods to create LZ4 compression and decompression streams.
+
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression settings.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression level.
+ Extra memory used for compression.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Decompression settings.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Extra memory used for decompression.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net5.0/K4os.Compression.LZ4.Streams.dll b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net5.0/K4os.Compression.LZ4.Streams.dll
new file mode 100644
index 0000000..193e8fb
Binary files /dev/null and b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net5.0/K4os.Compression.LZ4.Streams.dll differ
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net5.0/K4os.Compression.LZ4.Streams.xml b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net5.0/K4os.Compression.LZ4.Streams.xml
new file mode 100644
index 0000000..a541394
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net5.0/K4os.Compression.LZ4.Streams.xml
@@ -0,0 +1,1689 @@
+
+
+
+ K4os.Compression.LZ4.Streams
+
+
+
+
+ Generic interface for frame/stream decoder for LZ4.
+
+
+
+
+ Opens frame for reading. Please note, this method is not needed as it will be
+ called automatically, but it can be used to quickly check if frame is valid.
+
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Cancellation token.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Gets the length of the frame content if it was provided when content was encoded.
+ Frame length, or null
+
+
+ Async version of .
+ Cancellation token.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ A byte, or -1 if end of stream.
+
+
+ Reads one byte from LZ4 stream.
+ Cancellation token.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Cancellation token.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Returns how many bytes in has been read from stream so far.
+ Number of bytes read in total.
+
+
+ Closes the stream, releases allocated memory.
+
+
+
+ Generic interface for LZ4 frame/stream writer.
+
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Cancellation token.
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Byte to be written.
+
+
+ Writes one byte to stream.
+ Cancellation token.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Byte buffer.
+
+
+ Writes multiple bytes to stream.
+ Cancellation token.
+ Byte buffer.
+
+
+ Gets number of bytes written.
+ Total number of bytes (before compression).
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Cancellation token.
+
+
+
+ Stream reader interface. It is an adapter for all stream-like structures.
+
+ Stream state.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Number of bytes actually read.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Cancellation token.
+ containing new stream state,
+ and number of bytes actually read..
+
+
+
+ Generic stream writer interface.
+ When implementing custom compression target or decompression source you need to implement
+ this adapter. Please note, that this adapter can be implemented as class or
+ readonly struct. If implemented as struct it cannot have mutable state
+ as it will be lost. Immutable state is allowed but strongly discouraged.
+ Use instead.
+
+ Mutable part of stream state.
+
+
+ Indicates that writer can and should flush after frame.
+ Please note, flushing may have negative performance effect but may also lead to
+ better interactivity between writer and reader, as reader will get new block
+ available as soon as possible.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+ New stream state.
+
+
+ Number of bytes read.
+
+
+
+ Helper methods to create
+
+
+
+
+ Creates read result, composed of new stream state and bytes read.
+
+ Stream state.
+ Bytes read.
+ Stream state.
+ Read result.
+
+
+
+ Stream adapter for any class implementing .
+ It takes actual class, not interface, so it can use struct implementations
+ of for performance reasons.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+ Type implementing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ Copies bytes from span to buffer. Performs all length checks.
+
+ Head offset of .
+ Target buffer.
+ Offset in target buffer.
+ Number of bytes to copy.
+ Number of bytes actually copied.
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Memory buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Naive and simplistic implementation of adapter for .
+ It might be improved in many ways I believe, but it gives some starting point.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+
+
+
+
+ Creates new instance of .
+
+ Memory span.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Empty record equivalent to Unit/Void.
+ Works as placeholder type used when working with generic interfaces which do require type,
+ but implementation needs none.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe reader.
+
+
+
+
+
+
+
+
+
+ LZ4 stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new stream adapter for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unsafe version of . It is unsafe as it stores raw memory pointer
+ so memory it points to must be pinned. It allows reading and writing straight to
+ unmanaged memory but must be used carefully.
+ NOTE: If you don't understand what has been said above - don't use it. Misuse of this
+ struct may lead to unpredictable errors and memory corruption.
+
+
+
+ Pointer to the first byte of the span.
+
+
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from given pointer and length.
+
+ Pointer to the first byte of the span.
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from raw pointer.
+
+ Pointer block of bytes.
+ Length of the block.
+ New .
+
+
+
+ Converted to .
+
+
+
+
+ Utility methods for LZ4 streams.
+
+
+
+
+ Creates using .
+
+ LZ4 descriptor.
+ Compression level.
+ Additional memory for encoder.
+ Encoder.
+
+
+
+ Creates using and .
+
+ LZ4 descriptor.
+ Encoder settings.
+ Encoder.
+
+
+
+ Create using .
+
+ Descriptor.
+ Extra memory (may improves speed, but creates memory pressure).
+ .
+
+
+
+ Create using and .
+
+ Descriptor.
+ Settings.
+ .
+
+
+
+ Creates from .
+
+ Settings.
+ LZ4 Descriptor.
+
+
+ Async version of .
+ Decoder.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Decoder.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ Decoder.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Decoder.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Encoder.
+ true if frame has been opened, or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Encoder.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Encoder.
+ Byte buffer.
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Encoder.
+
+
+
+ Copies all bytes from into .
+
+ Frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ LZ4 frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Wraps as .
+
+ LZ4 frame reader.
+ Indicates that frame reader should be left open even if stream is
+ disposed.
+ Indicates that data should be provided to reader as quick as
+ possible, instead of waiting for whole block to be read.
+ stream wrapper.
+
+
+
+ Wraps as .
+
+ LZ4 frame writer.
+ Indicates that frame writer should be left open even if stream is
+ disposed.
+ stream wrapper.
+
+
+
+ LZ4 Decompression stream handling.
+
+
+
+ Creates new instance .
+ Inner stream.
+ Inner stream initial state.
+ Decoder factory.
+
+
+
+ Exposes internal stream state. Existence of this property is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the decoder. Consecutive attempts to read will fail.
+
+ true is stream is being disposed by user,
+ true is by garbage collector.
+
+
+
+ Releases unmanaged resources.
+
+
+
+
+ Releases unmanaged resources.
+
+ Task indicating operation is finished.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Bytes span.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Memory buffer.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Byte sequence.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to read from.
+ Leave stream open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+ Disposes the reader.
+
+ true if user is disposing it; false if it has been triggered by garbage collector
+
+
+
+ Disposes the reader.
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe to be read.
+ Leave pipe open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+
+
+
+
+
+
+ wrapper for .
+
+
+
+
+ Creates new instance of .
+
+ LZ4 frame reader.
+ Leave underlying stream open after disposing this stream.
+ Use interactive mode; return bytes as soon as they available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream encoder.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ Inner stream initial state.
+ LZ4 Encoder factory.
+ LZ4 settings.
+
+
+
+ Exposes internal stream state. Existence of this field is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the stream and releases all resources.
+
+ true if called by user; false when called by garbag collector.
+
+
+
+
+
+
+ Releases all unmanaged resources.
+
+
+
+
+ Releases all unmanaged resources.
+
+ Task indicating completion of the operation.
+
+
+
+
+
+
+ implementation for
+
+ Type of buffer writer.
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Current state of buffer writer.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Memory block where data will be written.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+ is a wrapper around that
+ can be stored in a field. Please note: it makes it unsafe and address needs to be pinned,
+ one way or another.
+
+
+
+
+ Creates new instance of .
+
+ Span to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to write to.
+ Leave stream open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer to write to.
+ Leave pipe open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ Adapter to make look like .
+
+
+
+ Creates new instance of .
+ Underlying frame encoder.
+ Indicates should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 Frame descriptor.
+
+
+
+ Content length. Not always known.
+
+
+ Indicates if content checksum is provided.
+
+
+ Indicates if blocks are chained (dependent) or not (independent).
+
+
+ Indicates if block checksums are provided.
+
+
+ Dictionary id. May be null.
+
+
+ Block size.
+
+
+
+ Completely empty class to do nothing.
+ It is used internally instead of CancellationToken to make sure
+ blocking operations are easily distinguishable from async ones
+ (you cannot call blocking operation by accident as they *require* EmptyToken).
+
+
+
+
+ Base class for all compatible adapters.
+
+ Type of resource stream adapter if for.
+
+
+
+ Creates new instance of .
+
+ Wrapped resource.
+ Do not dispose inner resource after stream is disposed.
+
+
+ Wrapped resource.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream essentials when wrapping another stream.
+ You most likely should not use it but it needs to be public as it is inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoder settings.
+
+
+
+ Extra memory for decompression.
+
+
+
+ LZ4 frame decoder stream.
+
+
+
+
+ Creates LZ4 decoder stream.
+
+ Inner stream, the stream compressed data is coming from..
+ Decoder factory.
+ Leave inner stream open after this stream is disposed.
+ Interactive mode, provide bytes as soon as they are available; don't wait for full block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 frame descriptor.
+
+
+
+ Content length (if available).
+
+
+ Indicates if content checksum if present.
+
+
+ Indicates if blocks are chained.
+
+
+ Indicates if block checksums are present.
+
+
+ Dictionary id (or null).
+
+
+ Block size.
+
+
+ Creates new instance of .
+ Content length.
+ Content checksum flag.
+ Chaining flag.
+ Block checksum flag.
+ Dictionary id.
+ Block size.
+
+
+ Creates new instance of .
+ Descriptor to copy.
+
+
+
+ LZ4 encoder settings.
+
+
+
+
+ Content length. It is not enforced, it can be set to any value, but it will be
+ written to the stream so it can be used while decoding. If you don't know the length
+ just leave default value.
+
+
+
+
+ Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
+ (with chaining) provide better compression ratio but are a little but slower and take
+ more memory.
+
+
+
+
+ Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
+ and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
+ better.
+
+
+
+ Indicates is content checksum should be included.
+
+
+ Indicates if block checksum should be included.
+
+
+ Dictionary id. Not implemented yet.
+
+
+ Compression level.
+
+
+ Extra memory (for the process, more is usually better).
+
+
+
+ LZ4 frame encoder stream.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ LZ4 Descriptor.
+ Function which will take descriptor and return
+ appropriate encoder.
+ Indicates if stream should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 factory methods to encode/decode anything which can be represented as a stream-like object.
+ Please note, to avoid all the complexity of dealing with streams, it uses
+ and as stream abstractions.
+
+
+
+ Creates decompression stream on top of inner stream.
+ Span to read from.
+ Buffer to write to.
+ Extra memory used for decompression.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Writes bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Encoder settings.
+ Leave target stream open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Compression level.
+ Extra memory for encoder.
+ Leave target stream open after encoder is disposed.
+
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Encoder settings.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Compression level.
+ Extra memory for encoder.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Utility class with factory methods to create LZ4 compression and decompression streams.
+
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression settings.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression level.
+ Extra memory used for compression.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Decompression settings.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Extra memory used for decompression.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net6.0/K4os.Compression.LZ4.Streams.dll b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net6.0/K4os.Compression.LZ4.Streams.dll
new file mode 100644
index 0000000..7885f8f
Binary files /dev/null and b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net6.0/K4os.Compression.LZ4.Streams.dll differ
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net6.0/K4os.Compression.LZ4.Streams.xml b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net6.0/K4os.Compression.LZ4.Streams.xml
new file mode 100644
index 0000000..a541394
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/net6.0/K4os.Compression.LZ4.Streams.xml
@@ -0,0 +1,1689 @@
+
+
+
+ K4os.Compression.LZ4.Streams
+
+
+
+
+ Generic interface for frame/stream decoder for LZ4.
+
+
+
+
+ Opens frame for reading. Please note, this method is not needed as it will be
+ called automatically, but it can be used to quickly check if frame is valid.
+
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Cancellation token.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Gets the length of the frame content if it was provided when content was encoded.
+ Frame length, or null
+
+
+ Async version of .
+ Cancellation token.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ A byte, or -1 if end of stream.
+
+
+ Reads one byte from LZ4 stream.
+ Cancellation token.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Cancellation token.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Returns how many bytes in has been read from stream so far.
+ Number of bytes read in total.
+
+
+ Closes the stream, releases allocated memory.
+
+
+
+ Generic interface for LZ4 frame/stream writer.
+
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Cancellation token.
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Byte to be written.
+
+
+ Writes one byte to stream.
+ Cancellation token.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Byte buffer.
+
+
+ Writes multiple bytes to stream.
+ Cancellation token.
+ Byte buffer.
+
+
+ Gets number of bytes written.
+ Total number of bytes (before compression).
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Cancellation token.
+
+
+
+ Stream reader interface. It is an adapter for all stream-like structures.
+
+ Stream state.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Number of bytes actually read.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Cancellation token.
+ containing new stream state,
+ and number of bytes actually read..
+
+
+
+ Generic stream writer interface.
+ When implementing custom compression target or decompression source you need to implement
+ this adapter. Please note, that this adapter can be implemented as class or
+ readonly struct. If implemented as struct it cannot have mutable state
+ as it will be lost. Immutable state is allowed but strongly discouraged.
+ Use instead.
+
+ Mutable part of stream state.
+
+
+ Indicates that writer can and should flush after frame.
+ Please note, flushing may have negative performance effect but may also lead to
+ better interactivity between writer and reader, as reader will get new block
+ available as soon as possible.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+ New stream state.
+
+
+ Number of bytes read.
+
+
+
+ Helper methods to create
+
+
+
+
+ Creates read result, composed of new stream state and bytes read.
+
+ Stream state.
+ Bytes read.
+ Stream state.
+ Read result.
+
+
+
+ Stream adapter for any class implementing .
+ It takes actual class, not interface, so it can use struct implementations
+ of for performance reasons.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+ Type implementing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ Copies bytes from span to buffer. Performs all length checks.
+
+ Head offset of .
+ Target buffer.
+ Offset in target buffer.
+ Number of bytes to copy.
+ Number of bytes actually copied.
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Memory buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Naive and simplistic implementation of adapter for .
+ It might be improved in many ways I believe, but it gives some starting point.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+
+
+
+
+ Creates new instance of .
+
+ Memory span.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Empty record equivalent to Unit/Void.
+ Works as placeholder type used when working with generic interfaces which do require type,
+ but implementation needs none.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe reader.
+
+
+
+
+
+
+
+
+
+ LZ4 stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new stream adapter for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unsafe version of . It is unsafe as it stores raw memory pointer
+ so memory it points to must be pinned. It allows reading and writing straight to
+ unmanaged memory but must be used carefully.
+ NOTE: If you don't understand what has been said above - don't use it. Misuse of this
+ struct may lead to unpredictable errors and memory corruption.
+
+
+
+ Pointer to the first byte of the span.
+
+
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from given pointer and length.
+
+ Pointer to the first byte of the span.
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from raw pointer.
+
+ Pointer block of bytes.
+ Length of the block.
+ New .
+
+
+
+ Converted to .
+
+
+
+
+ Utility methods for LZ4 streams.
+
+
+
+
+ Creates using .
+
+ LZ4 descriptor.
+ Compression level.
+ Additional memory for encoder.
+ Encoder.
+
+
+
+ Creates using and .
+
+ LZ4 descriptor.
+ Encoder settings.
+ Encoder.
+
+
+
+ Create using .
+
+ Descriptor.
+ Extra memory (may improves speed, but creates memory pressure).
+ .
+
+
+
+ Create using and .
+
+ Descriptor.
+ Settings.
+ .
+
+
+
+ Creates from .
+
+ Settings.
+ LZ4 Descriptor.
+
+
+ Async version of .
+ Decoder.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Decoder.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ Decoder.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Decoder.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Encoder.
+ true if frame has been opened, or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Encoder.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Encoder.
+ Byte buffer.
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Encoder.
+
+
+
+ Copies all bytes from into .
+
+ Frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ LZ4 frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Wraps as .
+
+ LZ4 frame reader.
+ Indicates that frame reader should be left open even if stream is
+ disposed.
+ Indicates that data should be provided to reader as quick as
+ possible, instead of waiting for whole block to be read.
+ stream wrapper.
+
+
+
+ Wraps as .
+
+ LZ4 frame writer.
+ Indicates that frame writer should be left open even if stream is
+ disposed.
+ stream wrapper.
+
+
+
+ LZ4 Decompression stream handling.
+
+
+
+ Creates new instance .
+ Inner stream.
+ Inner stream initial state.
+ Decoder factory.
+
+
+
+ Exposes internal stream state. Existence of this property is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the decoder. Consecutive attempts to read will fail.
+
+ true is stream is being disposed by user,
+ true is by garbage collector.
+
+
+
+ Releases unmanaged resources.
+
+
+
+
+ Releases unmanaged resources.
+
+ Task indicating operation is finished.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Bytes span.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Memory buffer.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Byte sequence.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to read from.
+ Leave stream open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+ Disposes the reader.
+
+ true if user is disposing it; false if it has been triggered by garbage collector
+
+
+
+ Disposes the reader.
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe to be read.
+ Leave pipe open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+
+
+
+
+
+
+ wrapper for .
+
+
+
+
+ Creates new instance of .
+
+ LZ4 frame reader.
+ Leave underlying stream open after disposing this stream.
+ Use interactive mode; return bytes as soon as they available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream encoder.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ Inner stream initial state.
+ LZ4 Encoder factory.
+ LZ4 settings.
+
+
+
+ Exposes internal stream state. Existence of this field is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the stream and releases all resources.
+
+ true if called by user; false when called by garbag collector.
+
+
+
+
+
+
+ Releases all unmanaged resources.
+
+
+
+
+ Releases all unmanaged resources.
+
+ Task indicating completion of the operation.
+
+
+
+
+
+
+ implementation for
+
+ Type of buffer writer.
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Current state of buffer writer.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Memory block where data will be written.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+ is a wrapper around that
+ can be stored in a field. Please note: it makes it unsafe and address needs to be pinned,
+ one way or another.
+
+
+
+
+ Creates new instance of .
+
+ Span to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to write to.
+ Leave stream open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer to write to.
+ Leave pipe open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ Adapter to make look like .
+
+
+
+ Creates new instance of .
+ Underlying frame encoder.
+ Indicates should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 Frame descriptor.
+
+
+
+ Content length. Not always known.
+
+
+ Indicates if content checksum is provided.
+
+
+ Indicates if blocks are chained (dependent) or not (independent).
+
+
+ Indicates if block checksums are provided.
+
+
+ Dictionary id. May be null.
+
+
+ Block size.
+
+
+
+ Completely empty class to do nothing.
+ It is used internally instead of CancellationToken to make sure
+ blocking operations are easily distinguishable from async ones
+ (you cannot call blocking operation by accident as they *require* EmptyToken).
+
+
+
+
+ Base class for all compatible adapters.
+
+ Type of resource stream adapter if for.
+
+
+
+ Creates new instance of .
+
+ Wrapped resource.
+ Do not dispose inner resource after stream is disposed.
+
+
+ Wrapped resource.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream essentials when wrapping another stream.
+ You most likely should not use it but it needs to be public as it is inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoder settings.
+
+
+
+ Extra memory for decompression.
+
+
+
+ LZ4 frame decoder stream.
+
+
+
+
+ Creates LZ4 decoder stream.
+
+ Inner stream, the stream compressed data is coming from..
+ Decoder factory.
+ Leave inner stream open after this stream is disposed.
+ Interactive mode, provide bytes as soon as they are available; don't wait for full block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 frame descriptor.
+
+
+
+ Content length (if available).
+
+
+ Indicates if content checksum if present.
+
+
+ Indicates if blocks are chained.
+
+
+ Indicates if block checksums are present.
+
+
+ Dictionary id (or null).
+
+
+ Block size.
+
+
+ Creates new instance of .
+ Content length.
+ Content checksum flag.
+ Chaining flag.
+ Block checksum flag.
+ Dictionary id.
+ Block size.
+
+
+ Creates new instance of .
+ Descriptor to copy.
+
+
+
+ LZ4 encoder settings.
+
+
+
+
+ Content length. It is not enforced, it can be set to any value, but it will be
+ written to the stream so it can be used while decoding. If you don't know the length
+ just leave default value.
+
+
+
+
+ Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
+ (with chaining) provide better compression ratio but are a little but slower and take
+ more memory.
+
+
+
+
+ Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
+ and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
+ better.
+
+
+
+ Indicates is content checksum should be included.
+
+
+ Indicates if block checksum should be included.
+
+
+ Dictionary id. Not implemented yet.
+
+
+ Compression level.
+
+
+ Extra memory (for the process, more is usually better).
+
+
+
+ LZ4 frame encoder stream.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ LZ4 Descriptor.
+ Function which will take descriptor and return
+ appropriate encoder.
+ Indicates if stream should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 factory methods to encode/decode anything which can be represented as a stream-like object.
+ Please note, to avoid all the complexity of dealing with streams, it uses
+ and as stream abstractions.
+
+
+
+ Creates decompression stream on top of inner stream.
+ Span to read from.
+ Buffer to write to.
+ Extra memory used for decompression.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Writes bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Encoder settings.
+ Leave target stream open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Compression level.
+ Extra memory for encoder.
+ Leave target stream open after encoder is disposed.
+
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Encoder settings.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Compression level.
+ Extra memory for encoder.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Utility class with factory methods to create LZ4 compression and decompression streams.
+
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression settings.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression level.
+ Extra memory used for compression.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Decompression settings.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Extra memory used for decompression.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.Streams.dll b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.Streams.dll
new file mode 100644
index 0000000..4a515bd
Binary files /dev/null and b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.Streams.dll differ
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.Streams.xml b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.Streams.xml
new file mode 100644
index 0000000..0686e4b
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.0/K4os.Compression.LZ4.Streams.xml
@@ -0,0 +1,1630 @@
+
+
+
+ K4os.Compression.LZ4.Streams
+
+
+
+
+ Generic interface for frame/stream decoder for LZ4.
+
+
+
+
+ Opens frame for reading. Please note, this method is not needed as it will be
+ called automatically, but it can be used to quickly check if frame is valid.
+
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Cancellation token.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Gets the length of the frame content if it was provided when content was encoded.
+ Frame length, or null
+
+
+ Async version of .
+ Cancellation token.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ A byte, or -1 if end of stream.
+
+
+ Reads one byte from LZ4 stream.
+ Cancellation token.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Cancellation token.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Returns how many bytes in has been read from stream so far.
+ Number of bytes read in total.
+
+
+ Closes the stream, releases allocated memory.
+
+
+
+ Generic interface for LZ4 frame/stream writer.
+
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Cancellation token.
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Byte to be written.
+
+
+ Writes one byte to stream.
+ Cancellation token.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Byte buffer.
+
+
+ Writes multiple bytes to stream.
+ Cancellation token.
+ Byte buffer.
+
+
+ Gets number of bytes written.
+ Total number of bytes (before compression).
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Cancellation token.
+
+
+
+ Stream reader interface. It is an adapter for all stream-like structures.
+
+ Stream state.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Number of bytes actually read.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Cancellation token.
+ containing new stream state,
+ and number of bytes actually read..
+
+
+
+ Generic stream writer interface.
+ When implementing custom compression target or decompression source you need to implement
+ this adapter. Please note, that this adapter can be implemented as class or
+ readonly struct. If implemented as struct it cannot have mutable state
+ as it will be lost. Immutable state is allowed but strongly discouraged.
+ Use instead.
+
+ Mutable part of stream state.
+
+
+ Indicates that writer can and should flush after frame.
+ Please note, flushing may have negative performance effect but may also lead to
+ better interactivity between writer and reader, as reader will get new block
+ available as soon as possible.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+ New stream state.
+
+
+ Number of bytes read.
+
+
+
+ Helper methods to create
+
+
+
+
+ Creates read result, composed of new stream state and bytes read.
+
+ Stream state.
+ Bytes read.
+ Stream state.
+ Read result.
+
+
+
+ Stream adapter for any class implementing .
+ It takes actual class, not interface, so it can use struct implementations
+ of for performance reasons.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+ Type implementing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ Copies bytes from span to buffer. Performs all length checks.
+
+ Head offset of .
+ Target buffer.
+ Offset in target buffer.
+ Number of bytes to copy.
+ Number of bytes actually copied.
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Memory buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Naive and simplistic implementation of adapter for .
+ It might be improved in many ways I believe, but it gives some starting point.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+
+
+
+
+ Creates new instance of .
+
+ Memory span.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Empty record equivalent to Unit/Void.
+ Works as placeholder type used when working with generic interfaces which do require type,
+ but implementation needs none.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe reader.
+
+
+
+
+
+
+
+
+
+ LZ4 stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new stream adapter for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unsafe version of . It is unsafe as it stores raw memory pointer
+ so memory it points to must be pinned. It allows reading and writing straight to
+ unmanaged memory but must be used carefully.
+ NOTE: If you don't understand what has been said above - don't use it. Misuse of this
+ struct may lead to unpredictable errors and memory corruption.
+
+
+
+ Pointer to the first byte of the span.
+
+
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from given pointer and length.
+
+ Pointer to the first byte of the span.
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from raw pointer.
+
+ Pointer block of bytes.
+ Length of the block.
+ New .
+
+
+
+ Converted to .
+
+
+
+
+ Utility methods for LZ4 streams.
+
+
+
+
+ Creates using .
+
+ LZ4 descriptor.
+ Compression level.
+ Additional memory for encoder.
+ Encoder.
+
+
+
+ Creates using and .
+
+ LZ4 descriptor.
+ Encoder settings.
+ Encoder.
+
+
+
+ Create using .
+
+ Descriptor.
+ Extra memory (may improves speed, but creates memory pressure).
+ .
+
+
+
+ Create using and .
+
+ Descriptor.
+ Settings.
+ .
+
+
+
+ Creates from .
+
+ Settings.
+ LZ4 Descriptor.
+
+
+ Async version of .
+ Decoder.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Decoder.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ Decoder.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Decoder.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Encoder.
+ true if frame has been opened, or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Encoder.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Encoder.
+ Byte buffer.
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Encoder.
+
+
+
+ Copies all bytes from into .
+
+ Frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ LZ4 frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Wraps as .
+
+ LZ4 frame reader.
+ Indicates that frame reader should be left open even if stream is
+ disposed.
+ Indicates that data should be provided to reader as quick as
+ possible, instead of waiting for whole block to be read.
+ stream wrapper.
+
+
+
+ Wraps as .
+
+ LZ4 frame writer.
+ Indicates that frame writer should be left open even if stream is
+ disposed.
+ stream wrapper.
+
+
+
+ LZ4 Decompression stream handling.
+
+
+
+ Creates new instance .
+ Inner stream.
+ Inner stream initial state.
+ Decoder factory.
+
+
+
+ Exposes internal stream state. Existence of this property is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the decoder. Consecutive attempts to read will fail.
+
+ true is stream is being disposed by user,
+ true is by garbage collector.
+
+
+
+ Releases unmanaged resources.
+
+
+
+
+ Releases unmanaged resources.
+
+ Task indicating operation is finished.
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Bytes span.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Memory buffer.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Byte sequence.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to read from.
+ Leave stream open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+ Disposes the reader.
+
+ true if user is disposing it; false if it has been triggered by garbage collector
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe to be read.
+ Leave pipe open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+
+
+
+
+
+
+ wrapper for .
+
+
+
+
+ Creates new instance of .
+
+ LZ4 frame reader.
+ Leave underlying stream open after disposing this stream.
+ Use interactive mode; return bytes as soon as they available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 stream encoder.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ Inner stream initial state.
+ LZ4 Encoder factory.
+ LZ4 settings.
+
+
+
+ Exposes internal stream state. Existence of this field is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the stream and releases all resources.
+
+ true if called by user; false when called by garbag collector.
+
+
+
+
+
+
+ Releases all unmanaged resources.
+
+
+
+
+ Releases all unmanaged resources.
+
+ Task indicating completion of the operation.
+
+
+
+ implementation for
+
+ Type of buffer writer.
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Current state of buffer writer.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Memory block where data will be written.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+ is a wrapper around that
+ can be stored in a field. Please note: it makes it unsafe and address needs to be pinned,
+ one way or another.
+
+
+
+
+ Creates new instance of .
+
+ Span to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to write to.
+ Leave stream open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer to write to.
+ Leave pipe open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ Adapter to make look like .
+
+
+
+ Creates new instance of .
+ Underlying frame encoder.
+ Indicates should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 Frame descriptor.
+
+
+
+ Content length. Not always known.
+
+
+ Indicates if content checksum is provided.
+
+
+ Indicates if blocks are chained (dependent) or not (independent).
+
+
+ Indicates if block checksums are provided.
+
+
+ Dictionary id. May be null.
+
+
+ Block size.
+
+
+
+ Completely empty class to do nothing.
+ It is used internally instead of CancellationToken to make sure
+ blocking operations are easily distinguishable from async ones
+ (you cannot call blocking operation by accident as they *require* EmptyToken).
+
+
+
+
+ Base class for all compatible adapters.
+
+ Type of resource stream adapter if for.
+
+
+
+ Creates new instance of .
+
+ Wrapped resource.
+ Do not dispose inner resource after stream is disposed.
+
+
+ Wrapped resource.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream essentials when wrapping another stream.
+ You most likely should not use it but it needs to be public as it is inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoder settings.
+
+
+
+ Extra memory for decompression.
+
+
+
+ LZ4 frame decoder stream.
+
+
+
+
+ Creates LZ4 decoder stream.
+
+ Inner stream, the stream compressed data is coming from..
+ Decoder factory.
+ Leave inner stream open after this stream is disposed.
+ Interactive mode, provide bytes as soon as they are available; don't wait for full block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 frame descriptor.
+
+
+
+ Content length (if available).
+
+
+ Indicates if content checksum if present.
+
+
+ Indicates if blocks are chained.
+
+
+ Indicates if block checksums are present.
+
+
+ Dictionary id (or null).
+
+
+ Block size.
+
+
+ Creates new instance of .
+ Content length.
+ Content checksum flag.
+ Chaining flag.
+ Block checksum flag.
+ Dictionary id.
+ Block size.
+
+
+ Creates new instance of .
+ Descriptor to copy.
+
+
+
+ LZ4 encoder settings.
+
+
+
+
+ Content length. It is not enforced, it can be set to any value, but it will be
+ written to the stream so it can be used while decoding. If you don't know the length
+ just leave default value.
+
+
+
+
+ Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
+ (with chaining) provide better compression ratio but are a little but slower and take
+ more memory.
+
+
+
+
+ Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
+ and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
+ better.
+
+
+
+ Indicates is content checksum should be included.
+
+
+ Indicates if block checksum should be included.
+
+
+ Dictionary id. Not implemented yet.
+
+
+ Compression level.
+
+
+ Extra memory (for the process, more is usually better).
+
+
+
+ LZ4 frame encoder stream.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ LZ4 Descriptor.
+ Function which will take descriptor and return
+ appropriate encoder.
+ Indicates if stream should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 factory methods to encode/decode anything which can be represented as a stream-like object.
+ Please note, to avoid all the complexity of dealing with streams, it uses
+ and as stream abstractions.
+
+
+
+ Creates decompression stream on top of inner stream.
+ Span to read from.
+ Buffer to write to.
+ Extra memory used for decompression.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Writes bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Encoder settings.
+ Leave target stream open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Compression level.
+ Extra memory for encoder.
+ Leave target stream open after encoder is disposed.
+
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Encoder settings.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Compression level.
+ Extra memory for encoder.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Utility class with factory methods to create LZ4 compression and decompression streams.
+
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression settings.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression level.
+ Extra memory used for compression.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Decompression settings.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Extra memory used for decompression.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.Streams.dll b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.Streams.dll
new file mode 100644
index 0000000..0298ee0
Binary files /dev/null and b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.Streams.dll differ
diff --git a/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.Streams.xml b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.Streams.xml
new file mode 100644
index 0000000..a541394
--- /dev/null
+++ b/packages/K4os.Compression.LZ4.Streams.1.3.5/lib/netstandard2.1/K4os.Compression.LZ4.Streams.xml
@@ -0,0 +1,1689 @@
+
+
+
+ K4os.Compression.LZ4.Streams
+
+
+
+
+ Generic interface for frame/stream decoder for LZ4.
+
+
+
+
+ Opens frame for reading. Please note, this method is not needed as it will be
+ called automatically, but it can be used to quickly check if frame is valid.
+
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Cancellation token.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Gets the length of the frame content if it was provided when content was encoded.
+ Frame length, or null
+
+
+ Async version of .
+ Cancellation token.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ A byte, or -1 if end of stream.
+
+
+ Reads one byte from LZ4 stream.
+ Cancellation token.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Cancellation token.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Returns how many bytes in has been read from stream so far.
+ Number of bytes read in total.
+
+
+ Closes the stream, releases allocated memory.
+
+
+
+ Generic interface for LZ4 frame/stream writer.
+
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Cancellation token.
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Byte to be written.
+
+
+ Writes one byte to stream.
+ Cancellation token.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Byte buffer.
+
+
+ Writes multiple bytes to stream.
+ Cancellation token.
+ Byte buffer.
+
+
+ Gets number of bytes written.
+ Total number of bytes (before compression).
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Cancellation token.
+
+
+
+ Stream reader interface. It is an adapter for all stream-like structures.
+
+ Stream state.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Number of bytes actually read.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Cancellation token.
+ containing new stream state,
+ and number of bytes actually read..
+
+
+
+ Generic stream writer interface.
+ When implementing custom compression target or decompression source you need to implement
+ this adapter. Please note, that this adapter can be implemented as class or
+ readonly struct. If implemented as struct it cannot have mutable state
+ as it will be lost. Immutable state is allowed but strongly discouraged.
+ Use instead.
+
+ Mutable part of stream state.
+
+
+ Indicates that writer can and should flush after frame.
+ Please note, flushing may have negative performance effect but may also lead to
+ better interactivity between writer and reader, as reader will get new block
+ available as soon as possible.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+ New stream state.
+
+
+ Number of bytes read.
+
+
+
+ Helper methods to create
+
+
+
+
+ Creates read result, composed of new stream state and bytes read.
+
+ Stream state.
+ Bytes read.
+ Stream state.
+ Read result.
+
+
+
+ Stream adapter for any class implementing .
+ It takes actual class, not interface, so it can use struct implementations
+ of for performance reasons.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+ Type implementing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ Copies bytes from span to buffer. Performs all length checks.
+
+ Head offset of .
+ Target buffer.
+ Offset in target buffer.
+ Number of bytes to copy.
+ Number of bytes actually copied.
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Memory buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Naive and simplistic implementation of adapter for .
+ It might be improved in many ways I believe, but it gives some starting point.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+
+
+
+
+ Creates new instance of .
+
+ Memory span.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Empty record equivalent to Unit/Void.
+ Works as placeholder type used when working with generic interfaces which do require type,
+ but implementation needs none.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe reader.
+
+
+
+
+
+
+
+
+
+ LZ4 stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new stream adapter for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unsafe version of . It is unsafe as it stores raw memory pointer
+ so memory it points to must be pinned. It allows reading and writing straight to
+ unmanaged memory but must be used carefully.
+ NOTE: If you don't understand what has been said above - don't use it. Misuse of this
+ struct may lead to unpredictable errors and memory corruption.
+
+
+
+ Pointer to the first byte of the span.
+
+
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from given pointer and length.
+
+ Pointer to the first byte of the span.
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from raw pointer.
+
+ Pointer block of bytes.
+ Length of the block.
+ New .
+
+
+
+ Converted to .
+
+
+
+
+ Utility methods for LZ4 streams.
+
+
+
+
+ Creates using .
+
+ LZ4 descriptor.
+ Compression level.
+ Additional memory for encoder.
+ Encoder.
+
+
+
+ Creates using and .
+
+ LZ4 descriptor.
+ Encoder settings.
+ Encoder.
+
+
+
+ Create using .
+
+ Descriptor.
+ Extra memory (may improves speed, but creates memory pressure).
+ .
+
+
+
+ Create using and .
+
+ Descriptor.
+ Settings.
+ .
+
+
+
+ Creates from .
+
+ Settings.
+ LZ4 Descriptor.
+
+
+ Async version of .
+ Decoder.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Decoder.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ Decoder.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Decoder.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Encoder.
+ true if frame has been opened, or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Encoder.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Encoder.
+ Byte buffer.
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Encoder.
+
+
+
+ Copies all bytes from into .
+
+ Frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ LZ4 frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Wraps as .
+
+ LZ4 frame reader.
+ Indicates that frame reader should be left open even if stream is
+ disposed.
+ Indicates that data should be provided to reader as quick as
+ possible, instead of waiting for whole block to be read.
+ stream wrapper.
+
+
+
+ Wraps as .
+
+ LZ4 frame writer.
+ Indicates that frame writer should be left open even if stream is
+ disposed.
+ stream wrapper.
+
+
+
+ LZ4 Decompression stream handling.
+
+
+
+ Creates new instance .
+ Inner stream.
+ Inner stream initial state.
+ Decoder factory.
+
+
+
+ Exposes internal stream state. Existence of this property is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the decoder. Consecutive attempts to read will fail.
+
+ true is stream is being disposed by user,
+ true is by garbage collector.
+
+
+
+ Releases unmanaged resources.
+
+
+
+
+ Releases unmanaged resources.
+
+ Task indicating operation is finished.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Bytes span.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Memory buffer.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Byte sequence.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to read from.
+ Leave stream open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+ Disposes the reader.
+
+ true if user is disposing it; false if it has been triggered by garbage collector
+
+
+
+ Disposes the reader.
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe to be read.
+ Leave pipe open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+
+
+
+
+
+
+ wrapper for .
+
+
+
+
+ Creates new instance of .
+
+ LZ4 frame reader.
+ Leave underlying stream open after disposing this stream.
+ Use interactive mode; return bytes as soon as they available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream encoder.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ Inner stream initial state.
+ LZ4 Encoder factory.
+ LZ4 settings.
+
+
+
+ Exposes internal stream state. Existence of this field is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the stream and releases all resources.
+
+ true if called by user; false when called by garbag collector.
+
+
+
+
+
+
+ Releases all unmanaged resources.
+
+
+
+
+ Releases all unmanaged resources.
+
+ Task indicating completion of the operation.
+
+
+
+
+
+
+ implementation for
+
+ Type of buffer writer.
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Current state of buffer writer.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Memory block where data will be written.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+ is a wrapper around that
+ can be stored in a field. Please note: it makes it unsafe and address needs to be pinned,
+ one way or another.
+
+
+
+
+ Creates new instance of .
+
+ Span to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to write to.
+ Leave stream open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer to write to.
+ Leave pipe open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ Adapter to make look like .
+
+
+
+ Creates new instance of .
+ Underlying frame encoder.
+ Indicates should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 Frame descriptor.
+
+
+
+ Content length. Not always known.
+
+
+ Indicates if content checksum is provided.
+
+
+ Indicates if blocks are chained (dependent) or not (independent).
+
+
+ Indicates if block checksums are provided.
+
+
+ Dictionary id. May be null.
+
+
+ Block size.
+
+
+
+ Completely empty class to do nothing.
+ It is used internally instead of CancellationToken to make sure
+ blocking operations are easily distinguishable from async ones
+ (you cannot call blocking operation by accident as they *require* EmptyToken).
+
+
+
+
+ Base class for all compatible adapters.
+
+ Type of resource stream adapter if for.
+
+
+
+ Creates new instance of .
+
+ Wrapped resource.
+ Do not dispose inner resource after stream is disposed.
+
+
+ Wrapped resource.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream essentials when wrapping another stream.
+ You most likely should not use it but it needs to be public as it is inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoder settings.
+
+
+
+ Extra memory for decompression.
+
+
+
+ LZ4 frame decoder stream.
+
+
+
+
+ Creates LZ4 decoder stream.
+
+ Inner stream, the stream compressed data is coming from..
+ Decoder factory.
+ Leave inner stream open after this stream is disposed.
+ Interactive mode, provide bytes as soon as they are available; don't wait for full block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 frame descriptor.
+
+
+
+ Content length (if available).
+
+
+ Indicates if content checksum if present.
+
+
+ Indicates if blocks are chained.
+
+
+ Indicates if block checksums are present.
+
+
+ Dictionary id (or null).
+
+
+ Block size.
+
+
+ Creates new instance of .
+ Content length.
+ Content checksum flag.
+ Chaining flag.
+ Block checksum flag.
+ Dictionary id.
+ Block size.
+
+
+ Creates new instance of .
+ Descriptor to copy.
+
+
+
+ LZ4 encoder settings.
+
+
+
+
+ Content length. It is not enforced, it can be set to any value, but it will be
+ written to the stream so it can be used while decoding. If you don't know the length
+ just leave default value.
+
+
+
+
+ Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
+ (with chaining) provide better compression ratio but are a little but slower and take
+ more memory.
+
+
+
+
+ Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
+ and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
+ better.
+
+
+
+ Indicates is content checksum should be included.
+
+
+ Indicates if block checksum should be included.
+
+
+ Dictionary id. Not implemented yet.
+
+
+ Compression level.
+
+
+ Extra memory (for the process, more is usually better).
+
+
+
+ LZ4 frame encoder stream.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ LZ4 Descriptor.
+ Function which will take descriptor and return
+ appropriate encoder.
+ Indicates if stream should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 factory methods to encode/decode anything which can be represented as a stream-like object.
+ Please note, to avoid all the complexity of dealing with streams, it uses
+ and as stream abstractions.
+
+
+
+ Creates decompression stream on top of inner stream.
+ Span to read from.
+ Buffer to write to.
+ Extra memory used for decompression.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Writes bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Encoder settings.
+ Leave target stream open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Compression level.
+ Extra memory for encoder.
+ Leave target stream open after encoder is disposed.
+
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Encoder settings.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Compression level.
+ Extra memory for encoder.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Utility class with factory methods to create LZ4 compression and decompression streams.
+
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression settings.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression level.
+ Extra memory used for compression.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Decompression settings.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Extra memory used for decompression.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+
diff --git a/packages/K4os.Hash.xxHash.1.0.8/.signature.p7s b/packages/K4os.Hash.xxHash.1.0.8/.signature.p7s
new file mode 100644
index 0000000..96a16c5
Binary files /dev/null and b/packages/K4os.Hash.xxHash.1.0.8/.signature.p7s differ
diff --git a/packages/K4os.Hash.xxHash.1.0.8/K4os.Hash.xxHash.1.0.8.nupkg b/packages/K4os.Hash.xxHash.1.0.8/K4os.Hash.xxHash.1.0.8.nupkg
new file mode 100644
index 0000000..8a6f431
Binary files /dev/null and b/packages/K4os.Hash.xxHash.1.0.8/K4os.Hash.xxHash.1.0.8.nupkg differ
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/net462/K4os.Hash.xxHash.dll b/packages/K4os.Hash.xxHash.1.0.8/lib/net462/K4os.Hash.xxHash.dll
new file mode 100644
index 0000000..581a9d2
Binary files /dev/null and b/packages/K4os.Hash.xxHash.1.0.8/lib/net462/K4os.Hash.xxHash.dll differ
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/net462/K4os.Hash.xxHash.xml b/packages/K4os.Hash.xxHash.1.0.8/lib/net462/K4os.Hash.xxHash.xml
new file mode 100644
index 0000000..920c77d
--- /dev/null
+++ b/packages/K4os.Hash.xxHash.1.0.8/lib/net462/K4os.Hash.xxHash.xml
@@ -0,0 +1,245 @@
+
+
+
+ K4os.Hash.xxHash
+
+
+
+
+ Adapter implementing
+
+
+
+
+ Creates new .
+
+ Hash size (in bytes)
+ Reset function.
+ Update function.
+ Digest function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for both and . Do not use directly.
+
+
+
+ Protected constructor to prevent instantiation.
+
+
+
+ xxHash 32-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
+ xxHash 64-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/net5.0/K4os.Hash.xxHash.dll b/packages/K4os.Hash.xxHash.1.0.8/lib/net5.0/K4os.Hash.xxHash.dll
new file mode 100644
index 0000000..c1e901d
Binary files /dev/null and b/packages/K4os.Hash.xxHash.1.0.8/lib/net5.0/K4os.Hash.xxHash.dll differ
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/net5.0/K4os.Hash.xxHash.xml b/packages/K4os.Hash.xxHash.1.0.8/lib/net5.0/K4os.Hash.xxHash.xml
new file mode 100644
index 0000000..920c77d
--- /dev/null
+++ b/packages/K4os.Hash.xxHash.1.0.8/lib/net5.0/K4os.Hash.xxHash.xml
@@ -0,0 +1,245 @@
+
+
+
+ K4os.Hash.xxHash
+
+
+
+
+ Adapter implementing
+
+
+
+
+ Creates new .
+
+ Hash size (in bytes)
+ Reset function.
+ Update function.
+ Digest function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for both and . Do not use directly.
+
+
+
+ Protected constructor to prevent instantiation.
+
+
+
+ xxHash 32-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
+ xxHash 64-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/net6.0/K4os.Hash.xxHash.dll b/packages/K4os.Hash.xxHash.1.0.8/lib/net6.0/K4os.Hash.xxHash.dll
new file mode 100644
index 0000000..7796fb9
Binary files /dev/null and b/packages/K4os.Hash.xxHash.1.0.8/lib/net6.0/K4os.Hash.xxHash.dll differ
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/net6.0/K4os.Hash.xxHash.xml b/packages/K4os.Hash.xxHash.1.0.8/lib/net6.0/K4os.Hash.xxHash.xml
new file mode 100644
index 0000000..920c77d
--- /dev/null
+++ b/packages/K4os.Hash.xxHash.1.0.8/lib/net6.0/K4os.Hash.xxHash.xml
@@ -0,0 +1,245 @@
+
+
+
+ K4os.Hash.xxHash
+
+
+
+
+ Adapter implementing
+
+
+
+
+ Creates new .
+
+ Hash size (in bytes)
+ Reset function.
+ Update function.
+ Digest function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for both and . Do not use directly.
+
+
+
+ Protected constructor to prevent instantiation.
+
+
+
+ xxHash 32-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
+ xxHash 64-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.0/K4os.Hash.xxHash.dll b/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.0/K4os.Hash.xxHash.dll
new file mode 100644
index 0000000..cd0af6d
Binary files /dev/null and b/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.0/K4os.Hash.xxHash.dll differ
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.0/K4os.Hash.xxHash.xml b/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.0/K4os.Hash.xxHash.xml
new file mode 100644
index 0000000..920c77d
--- /dev/null
+++ b/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.0/K4os.Hash.xxHash.xml
@@ -0,0 +1,245 @@
+
+
+
+ K4os.Hash.xxHash
+
+
+
+
+ Adapter implementing
+
+
+
+
+ Creates new .
+
+ Hash size (in bytes)
+ Reset function.
+ Update function.
+ Digest function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for both and . Do not use directly.
+
+
+
+ Protected constructor to prevent instantiation.
+
+
+
+ xxHash 32-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
+ xxHash 64-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.1/K4os.Hash.xxHash.dll b/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.1/K4os.Hash.xxHash.dll
new file mode 100644
index 0000000..a60ab11
Binary files /dev/null and b/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.1/K4os.Hash.xxHash.dll differ
diff --git a/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.1/K4os.Hash.xxHash.xml b/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.1/K4os.Hash.xxHash.xml
new file mode 100644
index 0000000..920c77d
--- /dev/null
+++ b/packages/K4os.Hash.xxHash.1.0.8/lib/netstandard2.1/K4os.Hash.xxHash.xml
@@ -0,0 +1,245 @@
+
+
+
+ K4os.Hash.xxHash
+
+
+
+
+ Adapter implementing
+
+
+
+
+ Creates new .
+
+ Hash size (in bytes)
+ Reset function.
+ Update function.
+ Digest function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for both and . Do not use directly.
+
+
+
+ Protected constructor to prevent instantiation.
+
+
+
+ xxHash 32-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
+ xxHash 64-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/.signature.p7s b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/.signature.p7s
new file mode 100644
index 0000000..211981e
Binary files /dev/null and b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/.signature.p7s differ
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/Icon.png b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/Icon.png
new file mode 100644
index 0000000..a0f1fdb
Binary files /dev/null and b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/Icon.png differ
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/LICENSE.TXT b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/LICENSE.TXT
@@ -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.
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/Microsoft.Bcl.AsyncInterfaces.5.0.0.nupkg b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/Microsoft.Bcl.AsyncInterfaces.5.0.0.nupkg
new file mode 100644
index 0000000..bd94486
Binary files /dev/null and b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/Microsoft.Bcl.AsyncInterfaces.5.0.0.nupkg differ
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/THIRD-PARTY-NOTICES.TXT b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..111dcf5
--- /dev/null
+++ b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,884 @@
+.NET Runtime uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Runtime 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 ASP.NET
+-------------------------------
+
+Copyright (c) .NET Foundation. All rights reserved.
+Licensed under the Apache License, Version 2.0.
+
+Available at
+https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt
+
+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
+-------------------------------
+
+https://www.unicode.org/license.html
+
+Copyright © 1991-2020 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in https://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."
+
+License notice for Json.NET
+-------------------------------
+
+https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+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 vectorized base64 encoding / decoding
+--------------------------------------------------------
+
+Copyright (c) 2005-2007, Nick Galbreath
+Copyright (c) 2013-2017, Alfred Klomp
+Copyright (c) 2015-2017, Wojciech Mula
+Copyright (c) 2016-2017, Matthieu Darbois
+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.
+
+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 RFC 3492
+---------------------------
+
+The punycode implementation is based on the sample code in RFC 3492
+
+Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any
+kind, provided that the above copyright notice and this paragraph are
+included on all such copies and derivative works. However, this
+document itself may not be modified in any way, such as by removing
+the copyright notice or references to the Internet Society or other
+Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for
+copyrights defined in the Internet Standards process must be
+followed, or as required to translate it into languages other than
+English.
+
+The limited permissions granted above are perpetual and will not be
+revoked by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an
+"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+License notice for Algorithm from Internet Draft document "UUIDs and GUIDs"
+---------------------------------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, or Digital Equipment Corporation be used in advertising
+or publicity pertaining to distribution of the software without
+specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment
+Corporation makes any representations about the suitability of
+this software for any purpose.
+
+Copyright(C) The Internet Society 1997. All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others,
+and derivative works that comment on or otherwise explain it or assist in
+its implementation may be prepared, copied, published and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this paragraph are included on all such copies and
+derivative works.However, this document itself may not be modified in any
+way, such as by removing the copyright notice or references to the Internet
+Society or other Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for copyrights
+defined in the Internet Standards process must be followed, or as required
+to translate it into languages other than English.
+
+The limited permissions granted above are perpetual and will not be revoked
+by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+License notice for Algorithm from RFC 4122 -
+A Universally Unique IDentifier (UUID) URN Namespace
+----------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+Copyright (c) 1998 Microsoft.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, Microsoft, or Digital Equipment Corporation be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+Equipment Corporation makes any representations about the
+suitability of this software for any purpose."
+
+License notice for The LLVM Compiler Infrastructure
+---------------------------------------------------
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+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:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+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
+CONTRIBUTORS 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 WITH THE
+SOFTWARE.
+
+License notice for Bob Jenkins
+------------------------------
+
+By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+code any way you wish, private, educational, or commercial. It's free.
+
+License notice for Greg Parker
+------------------------------
+
+Greg Parker gparker@cs.stanford.edu December 2000
+This code is in the public domain and may be copied or modified without
+permission.
+
+License notice for libunwind based code
+----------------------------------------
+
+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 Printing Floating-Point Numbers (Dragon4)
+------------------------------------------------------------
+
+/******************************************************************************
+ Copyright (c) 2014 Ryan Juckett
+ http://www.ryanjuckett.com/
+
+ 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.
+******************************************************************************/
+
+License notice for Printing Floating-point Numbers (Grisu3)
+-----------------------------------------------------------
+
+Copyright 2012 the V8 project 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.
+
+License notice for xxHash
+-------------------------
+
+xxHash Library
+Copyright (c) 2012-2014, Yann Collet
+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.
+
+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 Berkeley SoftFloat Release 3e
+------------------------------------------------
+
+https://github.com/ucb-bar/berkeley-softfloat-3
+https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt
+
+License for Berkeley SoftFloat Release 3e
+
+John R. Hauser
+2018 January 20
+
+The following applies to the whole of SoftFloat Release 3e as well as to
+each source file individually.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California. 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.
+
+ 3. Neither the name of the University 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 REGENTS 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 REGENTS 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 Xorshift RNGs
+--------------------------------
+
+George Marsaglia
+2003-07-04
+Journal of Statistical Software
+License: http://creativecommons.org/licenses/by/3.0/
+
+https://www.jstatsoft.org/article/view/v008i14
+https://www.jstatsoft.org/index.php/jss/article/view/v008i14/xorshift.pdf
+
+License notice for Xorshift (Wikipedia)
+---------------------------------------
+
+https://en.wikipedia.org/wiki/Xorshift
+License: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License
+
+License for fastmod (https://github.com/lemire/fastmod)
+--------------------------------------
+
+ Copyright 2018 Daniel Lemire
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+License notice for The C++ REST SDK
+-----------------------------------
+
+C++ REST SDK
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+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.
+
+License notice for MessagePack-CSharp
+-------------------------------------
+
+MessagePack for C#
+
+MIT License
+
+Copyright (c) 2017 Yoshifumi Kawai
+
+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 lz4net
+-------------------------------------
+
+lz4net
+
+Copyright (c) 2013-2017, Milosz Krajewski
+
+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.
+
+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 Nerdbank.Streams
+-----------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) Andrew Arnott
+
+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 RapidJSON
+----------------------------
+
+Tencent is pleased to support the open source community by making RapidJSON available.
+
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
+
+Licensed under the MIT License (the "License"); you may not use this file except
+in compliance with the License. You may obtain a copy of the License at
+
+http://opensource.org/licenses/MIT
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+License notice for DirectX Math Library
+---------------------------------------
+
+https://github.com/microsoft/DirectXMath/blob/master/LICENSE
+
+ The MIT License (MIT)
+
+Copyright (c) 2011-2020 Microsoft Corp
+
+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 ldap4net
+---------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2018 Alexander Chermyanin
+
+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 vectorized sorting code
+------------------------------------------
+
+MIT License
+
+Copyright (c) 2020 Dan Shechter
+
+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.
+
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/net461/Microsoft.Bcl.AsyncInterfaces.dll b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/net461/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000..abe9406
Binary files /dev/null and b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/net461/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/net461/Microsoft.Bcl.AsyncInterfaces.xml b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/net461/Microsoft.Bcl.AsyncInterfaces.xml
new file mode 100644
index 0000000..cb1744f
--- /dev/null
+++ b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/net461/Microsoft.Bcl.AsyncInterfaces.xml
@@ -0,0 +1,223 @@
+
+
+
+ Microsoft.Bcl.AsyncInterfaces
+
+
+
+ Provides the core logic for implementing a manual-reset or .
+
+
+
+
+ The callback to invoke when the operation completes if was called before the operation completed,
+ or if the operation completed before a callback was supplied,
+ or null if a callback hasn't yet been provided and the operation hasn't yet completed.
+
+
+
+ State to pass to .
+
+
+ to flow to the callback, or null if no flowing is required.
+
+
+
+ A "captured" or with which to invoke the callback,
+ or null if no special context is required.
+
+
+
+ Whether the current operation has completed.
+
+
+ The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.
+
+
+ The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.
+
+
+ The current version of this value, used to help prevent misuse.
+
+
+ Gets or sets whether to force continuations to run asynchronously.
+ Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.
+
+
+ Resets to prepare for the next operation.
+
+
+ Completes with a successful result.
+ The result.
+
+
+ Complets with an error.
+
+
+
+ Gets the operation version.
+
+
+ Gets the status of the operation.
+ Opaque value that was provided to the 's constructor.
+
+
+ Gets the result of the operation.
+ Opaque value that was provided to the 's constructor.
+
+
+ Schedules the continuation action for this operation.
+ The continuation to invoke when the operation has completed.
+ The state object to pass to when it's invoked.
+ Opaque value that was provided to the 's constructor.
+ The flags describing the behavior of the continuation.
+
+
+ Ensures that the specified token matches the current version.
+ The token supplied by .
+
+
+ Signals that the operation has completed. Invoked after the result or error has been set.
+
+
+
+ Invokes the continuation with the appropriate captured context / scheduler.
+ This assumes that if is not null we're already
+ running within that .
+
+
+
+ Provides a set of static methods for configuring -related behaviors on asynchronous enumerables and disposables.
+
+
+ Configures how awaits on the tasks returned from an async disposable will be performed.
+ The source async disposable.
+ Whether to capture and marshal back to the current context.
+ The configured async disposable.
+
+
+ Configures how awaits on the tasks returned from an async iteration will be performed.
+ The type of the objects being iterated.
+ The source enumerable being iterated.
+ Whether to capture and marshal back to the current context.
+ The configured enumerable.
+
+
+ Sets the to be passed to when iterating.
+ The type of the objects being iterated.
+ The source enumerable being iterated.
+ The to use.
+ The configured enumerable.
+
+
+ Represents a builder for asynchronous iterators.
+
+
+ Creates an instance of the struct.
+ The initialized instance.
+
+
+ Invokes on the state machine while guarding the .
+ The type of the state machine.
+ The state machine instance, passed by reference.
+
+
+ Schedules the state machine to proceed to the next action when the specified awaiter completes.
+ The type of the awaiter.
+ The type of the state machine.
+ The awaiter.
+ The state machine.
+
+
+ Schedules the state machine to proceed to the next action when the specified awaiter completes.
+ The type of the awaiter.
+ The type of the state machine.
+ The awaiter.
+ The state machine.
+
+
+ Marks iteration as being completed, whether successfully or otherwise.
+
+
+ Gets an object that may be used to uniquely identify this builder to the debugger.
+
+
+ Indicates whether a method is an asynchronous iterator.
+
+
+ Initializes a new instance of the class.
+ The type object for the underlying state machine type that's used to implement a state machine method.
+
+
+ Provides a type that can be used to configure how awaits on an are performed.
+
+
+ Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.
+
+
+ Configures how awaits on the tasks returned from an async iteration will be performed.
+ Whether to capture and marshal back to the current context.
+ The configured enumerable.
+ This will replace any previous value set by for this iteration.
+
+
+ Sets the to be passed to when iterating.
+ The to use.
+ The configured enumerable.
+ This will replace any previous set by for this iteration.
+
+
+ Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.
+
+
+ Advances the enumerator asynchronously to the next element of the collection.
+
+ A that will complete with a result of true
+ if the enumerator was successfully advanced to the next element, or false if the enumerator has
+ passed the end of the collection.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or
+ resetting unmanaged resources asynchronously.
+
+
+
+ Exposes an enumerator that provides asynchronous iteration over values of a specified type.
+ The type of values to enumerate.
+
+
+ Returns an enumerator that iterates asynchronously through the collection.
+ A that may be used to cancel the asynchronous iteration.
+ An enumerator that can be used to iterate asynchronously through the collection.
+
+
+ Supports a simple asynchronous iteration over a generic collection.
+ The type of objects to enumerate.
+
+
+ Advances the enumerator asynchronously to the next element of the collection.
+
+ A that will complete with a result of true if the enumerator
+ was successfully advanced to the next element, or false if the enumerator has passed the end
+ of the collection.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+
+ Provides a mechanism for releasing unmanaged resources asynchronously.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or
+ resetting unmanaged resources asynchronously.
+
+
+
+
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000..79fbfcc
Binary files /dev/null and b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml
new file mode 100644
index 0000000..cb1744f
--- /dev/null
+++ b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml
@@ -0,0 +1,223 @@
+
+
+
+ Microsoft.Bcl.AsyncInterfaces
+
+
+
+ Provides the core logic for implementing a manual-reset or .
+
+
+
+
+ The callback to invoke when the operation completes if was called before the operation completed,
+ or if the operation completed before a callback was supplied,
+ or null if a callback hasn't yet been provided and the operation hasn't yet completed.
+
+
+
+ State to pass to .
+
+
+ to flow to the callback, or null if no flowing is required.
+
+
+
+ A "captured" or with which to invoke the callback,
+ or null if no special context is required.
+
+
+
+ Whether the current operation has completed.
+
+
+ The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.
+
+
+ The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.
+
+
+ The current version of this value, used to help prevent misuse.
+
+
+ Gets or sets whether to force continuations to run asynchronously.
+ Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.
+
+
+ Resets to prepare for the next operation.
+
+
+ Completes with a successful result.
+ The result.
+
+
+ Complets with an error.
+
+
+
+ Gets the operation version.
+
+
+ Gets the status of the operation.
+ Opaque value that was provided to the 's constructor.
+
+
+ Gets the result of the operation.
+ Opaque value that was provided to the 's constructor.
+
+
+ Schedules the continuation action for this operation.
+ The continuation to invoke when the operation has completed.
+ The state object to pass to when it's invoked.
+ Opaque value that was provided to the 's constructor.
+ The flags describing the behavior of the continuation.
+
+
+ Ensures that the specified token matches the current version.
+ The token supplied by .
+
+
+ Signals that the operation has completed. Invoked after the result or error has been set.
+
+
+
+ Invokes the continuation with the appropriate captured context / scheduler.
+ This assumes that if is not null we're already
+ running within that .
+
+
+
+ Provides a set of static methods for configuring -related behaviors on asynchronous enumerables and disposables.
+
+
+ Configures how awaits on the tasks returned from an async disposable will be performed.
+ The source async disposable.
+ Whether to capture and marshal back to the current context.
+ The configured async disposable.
+
+
+ Configures how awaits on the tasks returned from an async iteration will be performed.
+ The type of the objects being iterated.
+ The source enumerable being iterated.
+ Whether to capture and marshal back to the current context.
+ The configured enumerable.
+
+
+ Sets the to be passed to when iterating.
+ The type of the objects being iterated.
+ The source enumerable being iterated.
+ The to use.
+ The configured enumerable.
+
+
+ Represents a builder for asynchronous iterators.
+
+
+ Creates an instance of the struct.
+ The initialized instance.
+
+
+ Invokes on the state machine while guarding the .
+ The type of the state machine.
+ The state machine instance, passed by reference.
+
+
+ Schedules the state machine to proceed to the next action when the specified awaiter completes.
+ The type of the awaiter.
+ The type of the state machine.
+ The awaiter.
+ The state machine.
+
+
+ Schedules the state machine to proceed to the next action when the specified awaiter completes.
+ The type of the awaiter.
+ The type of the state machine.
+ The awaiter.
+ The state machine.
+
+
+ Marks iteration as being completed, whether successfully or otherwise.
+
+
+ Gets an object that may be used to uniquely identify this builder to the debugger.
+
+
+ Indicates whether a method is an asynchronous iterator.
+
+
+ Initializes a new instance of the class.
+ The type object for the underlying state machine type that's used to implement a state machine method.
+
+
+ Provides a type that can be used to configure how awaits on an are performed.
+
+
+ Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.
+
+
+ Configures how awaits on the tasks returned from an async iteration will be performed.
+ Whether to capture and marshal back to the current context.
+ The configured enumerable.
+ This will replace any previous value set by for this iteration.
+
+
+ Sets the to be passed to when iterating.
+ The to use.
+ The configured enumerable.
+ This will replace any previous set by for this iteration.
+
+
+ Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.
+
+
+ Advances the enumerator asynchronously to the next element of the collection.
+
+ A that will complete with a result of true
+ if the enumerator was successfully advanced to the next element, or false if the enumerator has
+ passed the end of the collection.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or
+ resetting unmanaged resources asynchronously.
+
+
+
+ Exposes an enumerator that provides asynchronous iteration over values of a specified type.
+ The type of values to enumerate.
+
+
+ Returns an enumerator that iterates asynchronously through the collection.
+ A that may be used to cancel the asynchronous iteration.
+ An enumerator that can be used to iterate asynchronously through the collection.
+
+
+ Supports a simple asynchronous iteration over a generic collection.
+ The type of objects to enumerate.
+
+
+ Advances the enumerator asynchronously to the next element of the collection.
+
+ A that will complete with a result of true if the enumerator
+ was successfully advanced to the next element, or false if the enumerator has passed the end
+ of the collection.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+
+ Provides a mechanism for releasing unmanaged resources asynchronously.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or
+ resetting unmanaged resources asynchronously.
+
+
+
+
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000..be25bdb
Binary files /dev/null and b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml
new file mode 100644
index 0000000..5fd48a2
--- /dev/null
+++ b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml
@@ -0,0 +1,8 @@
+
+
+
+ Microsoft.Bcl.AsyncInterfaces
+
+
+
+
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/useSharedDesignerContext.txt b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/version.txt b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/version.txt
new file mode 100644
index 0000000..0a6d216
--- /dev/null
+++ b/packages/Microsoft.Bcl.AsyncInterfaces.5.0.0/version.txt
@@ -0,0 +1 @@
+cf258a14b70ad9069470a108f13765e0e5988f51
diff --git a/packages/MySql.Data.8.2.0/.signature.p7s b/packages/MySql.Data.8.2.0/.signature.p7s
new file mode 100644
index 0000000..bb33517
Binary files /dev/null and b/packages/MySql.Data.8.2.0/.signature.p7s differ
diff --git a/packages/MySql.Data.8.2.0/MySql.Data.8.2.0.nupkg b/packages/MySql.Data.8.2.0/MySql.Data.8.2.0.nupkg
new file mode 100644
index 0000000..8b4e6f7
Binary files /dev/null and b/packages/MySql.Data.8.2.0/MySql.Data.8.2.0.nupkg differ
diff --git a/packages/MySql.Data.8.2.0/lib/net462/MySql.Data.dll b/packages/MySql.Data.8.2.0/lib/net462/MySql.Data.dll
new file mode 100644
index 0000000..eb611e9
Binary files /dev/null and b/packages/MySql.Data.8.2.0/lib/net462/MySql.Data.dll differ
diff --git a/packages/MySql.Data.8.2.0/lib/net462/MySql.Data.xml b/packages/MySql.Data.8.2.0/lib/net462/MySql.Data.xml
new file mode 100644
index 0000000..a4b2746
--- /dev/null
+++ b/packages/MySql.Data.8.2.0/lib/net462/MySql.Data.xml
@@ -0,0 +1,18611 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the Fido callback.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt..
+
+
+
+
+ Looks up a localized string similar to An event handler for FidoActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/packages/MySql.Data.8.2.0/lib/net48/MySql.Data.dll b/packages/MySql.Data.8.2.0/lib/net48/MySql.Data.dll
new file mode 100644
index 0000000..2285eac
Binary files /dev/null and b/packages/MySql.Data.8.2.0/lib/net48/MySql.Data.dll differ
diff --git a/packages/MySql.Data.8.2.0/lib/net48/MySql.Data.xml b/packages/MySql.Data.8.2.0/lib/net48/MySql.Data.xml
new file mode 100644
index 0000000..a4b2746
--- /dev/null
+++ b/packages/MySql.Data.8.2.0/lib/net48/MySql.Data.xml
@@ -0,0 +1,18611 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the Fido callback.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt..
+
+
+
+
+ Looks up a localized string similar to An event handler for FidoActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/packages/MySql.Data.8.2.0/lib/net6.0/MySql.Data.dll b/packages/MySql.Data.8.2.0/lib/net6.0/MySql.Data.dll
new file mode 100644
index 0000000..77afff3
Binary files /dev/null and b/packages/MySql.Data.8.2.0/lib/net6.0/MySql.Data.dll differ
diff --git a/packages/MySql.Data.8.2.0/lib/net6.0/MySql.Data.xml b/packages/MySql.Data.8.2.0/lib/net6.0/MySql.Data.xml
new file mode 100644
index 0000000..57887c5
--- /dev/null
+++ b/packages/MySql.Data.8.2.0/lib/net6.0/MySql.Data.xml
@@ -0,0 +1,18634 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the Fido callback.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Asynchronously closes the object.
+
+ A task representing the asynchronous operation.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt..
+
+
+
+
+ Looks up a localized string similar to An event handler for FidoActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/packages/MySql.Data.8.2.0/lib/net7.0/MySql.Data.dll b/packages/MySql.Data.8.2.0/lib/net7.0/MySql.Data.dll
new file mode 100644
index 0000000..147df0a
Binary files /dev/null and b/packages/MySql.Data.8.2.0/lib/net7.0/MySql.Data.dll differ
diff --git a/packages/MySql.Data.8.2.0/lib/net7.0/MySql.Data.xml b/packages/MySql.Data.8.2.0/lib/net7.0/MySql.Data.xml
new file mode 100644
index 0000000..57887c5
--- /dev/null
+++ b/packages/MySql.Data.8.2.0/lib/net7.0/MySql.Data.xml
@@ -0,0 +1,18634 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the Fido callback.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Asynchronously closes the object.
+
+ A task representing the asynchronous operation.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt..
+
+
+
+
+ Looks up a localized string similar to An event handler for FidoActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/packages/MySql.Data.8.2.0/lib/net8.0/MySql.Data.dll b/packages/MySql.Data.8.2.0/lib/net8.0/MySql.Data.dll
new file mode 100644
index 0000000..3379823
Binary files /dev/null and b/packages/MySql.Data.8.2.0/lib/net8.0/MySql.Data.dll differ
diff --git a/packages/MySql.Data.8.2.0/lib/net8.0/MySql.Data.xml b/packages/MySql.Data.8.2.0/lib/net8.0/MySql.Data.xml
new file mode 100644
index 0000000..57887c5
--- /dev/null
+++ b/packages/MySql.Data.8.2.0/lib/net8.0/MySql.Data.xml
@@ -0,0 +1,18634 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the Fido callback.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Asynchronously closes the object.
+
+ A task representing the asynchronous operation.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt..
+
+
+
+
+ Looks up a localized string similar to An event handler for FidoActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/packages/MySql.Data.8.2.0/lib/netstandard2.0/MySql.Data.dll b/packages/MySql.Data.8.2.0/lib/netstandard2.0/MySql.Data.dll
new file mode 100644
index 0000000..c46a87f
Binary files /dev/null and b/packages/MySql.Data.8.2.0/lib/netstandard2.0/MySql.Data.dll differ
diff --git a/packages/MySql.Data.8.2.0/lib/netstandard2.0/MySql.Data.xml b/packages/MySql.Data.8.2.0/lib/netstandard2.0/MySql.Data.xml
new file mode 100644
index 0000000..70dd4ef
--- /dev/null
+++ b/packages/MySql.Data.8.2.0/lib/netstandard2.0/MySql.Data.xml
@@ -0,0 +1,18611 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the Fido callback.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt..
+
+
+
+
+ Looks up a localized string similar to An event handler for FidoActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/packages/MySql.Data.8.2.0/lib/netstandard2.1/MySql.Data.dll b/packages/MySql.Data.8.2.0/lib/netstandard2.1/MySql.Data.dll
new file mode 100644
index 0000000..0dd09c2
Binary files /dev/null and b/packages/MySql.Data.8.2.0/lib/netstandard2.1/MySql.Data.dll differ
diff --git a/packages/MySql.Data.8.2.0/lib/netstandard2.1/MySql.Data.xml b/packages/MySql.Data.8.2.0/lib/netstandard2.1/MySql.Data.xml
new file mode 100644
index 0000000..57887c5
--- /dev/null
+++ b/packages/MySql.Data.8.2.0/lib/netstandard2.1/MySql.Data.xml
@@ -0,0 +1,18634 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the Fido callback.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Asynchronously closes the object.
+
+ A task representing the asynchronous operation.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt..
+
+
+
+
+ Looks up a localized string similar to An event handler for FidoActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified..
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/packages/MySql.Data.8.2.0/logo-mysql-170x115.png b/packages/MySql.Data.8.2.0/logo-mysql-170x115.png
new file mode 100644
index 0000000..73b55bd
Binary files /dev/null and b/packages/MySql.Data.8.2.0/logo-mysql-170x115.png differ
diff --git a/packages/MySql.Data.8.2.0/runtimes/win-x64/native/comerr64.dll b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/comerr64.dll
new file mode 100644
index 0000000..0a48cb5
Binary files /dev/null and b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/comerr64.dll differ
diff --git a/packages/MySql.Data.8.2.0/runtimes/win-x64/native/gssapi64.dll b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/gssapi64.dll
new file mode 100644
index 0000000..1628e38
Binary files /dev/null and b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/gssapi64.dll differ
diff --git a/packages/MySql.Data.8.2.0/runtimes/win-x64/native/k5sprt64.dll b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/k5sprt64.dll
new file mode 100644
index 0000000..9237ce9
Binary files /dev/null and b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/k5sprt64.dll differ
diff --git a/packages/MySql.Data.8.2.0/runtimes/win-x64/native/krb5_64.dll b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/krb5_64.dll
new file mode 100644
index 0000000..582f680
Binary files /dev/null and b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/krb5_64.dll differ
diff --git a/packages/MySql.Data.8.2.0/runtimes/win-x64/native/krbcc64.dll b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/krbcc64.dll
new file mode 100644
index 0000000..ba5a519
Binary files /dev/null and b/packages/MySql.Data.8.2.0/runtimes/win-x64/native/krbcc64.dll differ
diff --git a/packages/System.Buffers.4.5.1/.signature.p7s b/packages/System.Buffers.4.5.1/.signature.p7s
new file mode 100644
index 0000000..1bf2285
Binary files /dev/null and b/packages/System.Buffers.4.5.1/.signature.p7s differ
diff --git a/packages/System.Buffers.4.5.1/LICENSE.TXT b/packages/System.Buffers.4.5.1/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/LICENSE.TXT
@@ -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.
diff --git a/packages/System.Buffers.4.5.1/System.Buffers.4.5.1.nupkg b/packages/System.Buffers.4.5.1/System.Buffers.4.5.1.nupkg
new file mode 100644
index 0000000..f7ee6b2
Binary files /dev/null and b/packages/System.Buffers.4.5.1/System.Buffers.4.5.1.nupkg differ
diff --git a/packages/System.Buffers.4.5.1/THIRD-PARTY-NOTICES.TXT b/packages/System.Buffers.4.5.1/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..db542ca
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/THIRD-PARTY-NOTICES.TXT
@@ -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."
+
diff --git a/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.dll b/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.dll
new file mode 100644
index 0000000..f2d83c5
Binary files /dev/null and b/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.dll differ
diff --git a/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.xml b/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.xml
new file mode 100644
index 0000000..e243dce
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/lib/net461/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Buffers.4.5.1/lib/netcoreapp2.0/_._ b/packages/System.Buffers.4.5.1/lib/netcoreapp2.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.dll b/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.dll
new file mode 100644
index 0000000..14e5c53
Binary files /dev/null and b/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.dll differ
diff --git a/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.xml b/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.xml
new file mode 100644
index 0000000..e243dce
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/lib/netstandard1.1/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.dll b/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.dll
new file mode 100644
index 0000000..c0970c0
Binary files /dev/null and b/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.dll differ
diff --git a/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.xml b/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.xml
new file mode 100644
index 0000000..e243dce
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Buffers.4.5.1/lib/uap10.0.16299/_._ b/packages/System.Buffers.4.5.1/lib/uap10.0.16299/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.dll b/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.dll
new file mode 100644
index 0000000..022667e
Binary files /dev/null and b/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.dll differ
diff --git a/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.xml b/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.xml
new file mode 100644
index 0000000..e243dce
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/ref/net45/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Buffers.4.5.1/ref/netcoreapp2.0/_._ b/packages/System.Buffers.4.5.1/ref/netcoreapp2.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.dll b/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.dll
new file mode 100644
index 0000000..9daa056
Binary files /dev/null and b/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.dll differ
diff --git a/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.xml b/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.xml
new file mode 100644
index 0000000..e243dce
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/ref/netstandard1.1/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.dll b/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.dll
new file mode 100644
index 0000000..a294e52
Binary files /dev/null and b/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.dll differ
diff --git a/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.xml b/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.xml
new file mode 100644
index 0000000..e243dce
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/ref/netstandard2.0/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Buffers.4.5.1/ref/uap10.0.16299/_._ b/packages/System.Buffers.4.5.1/ref/uap10.0.16299/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Buffers.4.5.1/useSharedDesignerContext.txt b/packages/System.Buffers.4.5.1/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Buffers.4.5.1/version.txt b/packages/System.Buffers.4.5.1/version.txt
new file mode 100644
index 0000000..8d6cdd6
--- /dev/null
+++ b/packages/System.Buffers.4.5.1/version.txt
@@ -0,0 +1 @@
+7601f4f6225089ffb291dc7d58293c7bbf5c5d4f
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/.signature.p7s b/packages/System.Configuration.ConfigurationManager.4.4.1/.signature.p7s
new file mode 100644
index 0000000..ed940fa
Binary files /dev/null and b/packages/System.Configuration.ConfigurationManager.4.4.1/.signature.p7s differ
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/LICENSE.TXT b/packages/System.Configuration.ConfigurationManager.4.4.1/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/System.Configuration.ConfigurationManager.4.4.1/LICENSE.TXT
@@ -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.
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/System.Configuration.ConfigurationManager.4.4.1.nupkg b/packages/System.Configuration.ConfigurationManager.4.4.1/System.Configuration.ConfigurationManager.4.4.1.nupkg
new file mode 100644
index 0000000..3901149
Binary files /dev/null and b/packages/System.Configuration.ConfigurationManager.4.4.1/System.Configuration.ConfigurationManager.4.4.1.nupkg differ
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/THIRD-PARTY-NOTICES.TXT b/packages/System.Configuration.ConfigurationManager.4.4.1/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..06055ff
--- /dev/null
+++ b/packages/System.Configuration.ConfigurationManager.4.4.1/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,226 @@
+.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.
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/lib/net461/System.Configuration.ConfigurationManager.dll b/packages/System.Configuration.ConfigurationManager.4.4.1/lib/net461/System.Configuration.ConfigurationManager.dll
new file mode 100644
index 0000000..58530a4
Binary files /dev/null and b/packages/System.Configuration.ConfigurationManager.4.4.1/lib/net461/System.Configuration.ConfigurationManager.dll differ
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/lib/netstandard2.0/System.Configuration.ConfigurationManager.dll b/packages/System.Configuration.ConfigurationManager.4.4.1/lib/netstandard2.0/System.Configuration.ConfigurationManager.dll
new file mode 100644
index 0000000..8f9fd3c
Binary files /dev/null and b/packages/System.Configuration.ConfigurationManager.4.4.1/lib/netstandard2.0/System.Configuration.ConfigurationManager.dll differ
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/ref/net461/System.Configuration.ConfigurationManager.dll b/packages/System.Configuration.ConfigurationManager.4.4.1/ref/net461/System.Configuration.ConfigurationManager.dll
new file mode 100644
index 0000000..11faff7
Binary files /dev/null and b/packages/System.Configuration.ConfigurationManager.4.4.1/ref/net461/System.Configuration.ConfigurationManager.dll differ
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/ref/net461/System.Configuration.ConfigurationManager.xml b/packages/System.Configuration.ConfigurationManager.4.4.1/ref/net461/System.Configuration.ConfigurationManager.xml
new file mode 100644
index 0000000..fdf8ae3
--- /dev/null
+++ b/packages/System.Configuration.ConfigurationManager.4.4.1/ref/net461/System.Configuration.ConfigurationManager.xml
@@ -0,0 +1,4888 @@
+
+
+
+ System.Configuration.ConfigurationManager
+
+
+
+ Provides a object that uses the Windows data protection API (DPAPI) to encrypt and decrypt configuration data.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Decrypts the passed object.
+
+ A decrypted object.
+ encrypted_node does not have set to "EncryptedData" and set to . - or - encrypted_node does not have a child node named "CipherData" with a child node named "CipherValue". - or - The child node named "CipherData" is an empty node.
+
+
+ Encrypts the passed object.
+ The object to encrypt.
+ An encrypted object.
+
+
+ Initializes the provider with default settings.
+ The provider name to use for the object.
+ A collection of values to use when initializing the object.
+ configurationValues contains an unrecognized configuration setting.
+
+
+ Gets a value that indicates whether the object is using machine-specific or user-account-specific protection.
+ true if the is using machine-specific protection; false if it is using user-account-specific protection.
+
+
+ Contains meta-information about an individual element within the configuration. This class cannot be inherited.
+
+
+ Gets the errors for the associated element and subelements
+ The collection containing the errors for the associated element and subelements
+
+
+ Gets a value indicating whether the associated object is a collection.
+ true if the associated object is a collection; otherwise, false.
+
+
+ Gets a value that indicates whether the associated object cannot be modified.
+ true if the associated object cannot be modified; otherwise, false.
+
+
+ Gets a value indicating whether the associated object is in the configuration file.
+ true if the associated object is in the configuration file; otherwise, false.
+
+
+ Gets the line number in the configuration file where the associated object is defined.
+ The line number in the configuration file where the associated object is defined.
+
+
+ Gets a collection of the properties in the associated object.
+ A collection of the properties in the associated object.
+
+
+ Gets the source file where the associated object originated.
+ The source file where the associated object originated.
+
+
+ Gets the type of the associated object.
+ The type of the associated object.
+
+
+ Gets the object used to validate the associated object.
+ The object used to validate the associated object.
+
+
+ Defines the configuration file mapping for an .exe application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified machine configuration file name.
+ The name of the machine configuration file that includes the complete physical path (for example, c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config).
+
+
+ Creates a copy of the existing object.
+ An object.
+
+
+ Gets or sets the name of the configuration file.
+ The configuration file name.
+
+
+ Gets or sets the name of the configuration file for the local user.
+ The configuration file name.
+
+
+ Gets or sets the name of the configuration file for the roaming user.
+ The configuration file name.
+
+
+ Manages the path context for the current application. This class cannot be inherited.
+
+
+ Gets the current path for the application.
+ A string value containing the current path.
+
+
+ Gets an object representing the path level of the current application.
+ A object representing the path level of the current application.
+
+
+ Converts between a string and an enumeration type.
+
+
+ Initializes a new instance of the class.
+ The enumeration type to convert.
+ typeEnum is null.
+
+
+ Converts a to an type.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The type that represents the data parameter.
+ data is null or an empty string (""). - or - data starts with a numeric character. - or - data includes white space.
+
+
+ Converts an type to a value.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the value parameter.
+
+
+ Defines extended capabilities for client-based application settings providers.
+
+
+ Returns the value of the specified settings property for the previous version of the same application.
+ A describing the current application usage.
+ The whose value is to be returned.
+ A containing the value of the specified property setting as it was last set in the previous version of the application; or null if the setting cannot be found.
+
+
+ Resets the application settings associated with the specified application to their default values.
+ A describing the current application usage.
+
+
+ Indicates to the provider that the application has been upgraded. This offers the provider an opportunity to upgrade its stored settings as appropriate.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+
+
+ Handles the access to certain configuration sections.
+
+
+ Creates a configuration section handler.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ The created section handler object.
+
+
+ Provides standard configuration methods.
+
+
+ Gets the specified configuration.
+ The configuration key.
+ The object representing the configuration.
+
+
+ Used for initialization.
+
+
+ Provides the configuration setting for International Domain Name (IDN) processing in the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the value of the configuration setting.
+ A that contains the current configuration setting for IDN processing.
+
+
+ Provides a wrapper type definition for configuration sections that are not handled by the types.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a legacy section-handler definition for configuration sections that are not handled by the types.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds the specified configuration object to the section-handler collection.
+ The configuration settings in a corresponding parent configuration section.
+ The virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.
+ An that contains the configuration information to be handled. Provides direct access to the XML contents of the configuration section.
+ The created configuration handler object.
+
+
+ Converts between a string and the standard infinite or integer value.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to an .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The , if the data parameter is the "infinite"; otherwise, the representing the data parameter integer value.
+
+
+ Converts an .to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The "infinite" if the value is ; otherwise, the representing the value parameter.
+
+
+ Converts between a string and the standard infinite value.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The , if the data parameter is the infinite; otherwise, the representing the data parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The used during object conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the value parameter is ; otherwise, the representing the value parameter in minutes.
+
+
+ Provides validation of an value.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum value.
+ An object that specifies the maximum value.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum value.
+ An object that specifies the maximum value.
+ true to specify that the validation range is exclusive. Inclusive means the value to be validated must be within the specified range; exclusive means that it must be below the minimum or above the maximum.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum length of the integer value.
+ An object that specifies the maximum length of the integer value.
+ A value that specifies whether the validation range is exclusive.
+ An object that specifies a value that must be matched.
+ resolution is less than 0. - or - minValue is greater than maxValue.
+
+
+ Determines whether the type of the object can be validated.
+ The type of the object.
+ true if the type parameter matches an value; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value to be validated.
+
+
+ Declaratively instructs the .NET Framework to perform integer validation on a configuration property. This class cannot be inherited.
+
+
+ Creates a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range defined by the and property values.
+ true if the value must be excluded; otherwise, false. The default is false.
+
+
+ Gets or sets the maximum value allowed for the property.
+ An integer that indicates the allowed maximum value.
+ The selected value is less than .
+
+
+ Gets or sets the minimum value allowed for the property.
+ An integer that indicates the allowed minimum value.
+ The selected value is greater than .
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Delegates all members of the interface to another instance of a host.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration context.
+ A string representing the path to a configuration file.
+ A string representing a location subpath.
+ A representing a new configuration context.
+
+
+ Creates a deprecated configuration context.
+ A string representing the path to a configuration file.
+ A representing a deprecated configuration context.
+
+
+ Decrypts an encrypted configuration section.
+ An encrypted section of a configuration file.
+ A object.
+
+ A string representing a decrypted configuration section.
+
+
+ Deletes the object performing I/O tasks on a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+
+
+ Encrypts a section of a configuration object.
+
+ A object.
+
+ A string representing an encrypted section of the configuration object.
+
+
+ Returns a configuration path based on a location subpath.
+ A string representing the path to a configuration file.
+
+ A string representing a configuration path.
+
+
+ Returns a representing the type of the configuration.
+ A string representing the configuration type.
+ true if an exception should be thrown if an error is encountered; false if an exception should not be thrown if an error is encountered.
+ A representing the type of the configuration.
+
+
+ Returns a string representing the type name of the configuration object.
+ A object.
+ A string representing the type name of the configuration object.
+
+
+ Returns the name of a object performing I/O tasks on a configuration file.
+ A string representing the path to a configuration file.
+ A string representing the name of a object performing I/O tasks on a configuration file.
+
+
+ Returns the name of a object performing I/O tasks on a configuration source.
+ The name of a object performing I/O tasks on a configuration file.
+ A string representing the configuration source.
+ A string representing the name of a object performing I/O tasks on a configuration source.
+
+
+ Returns a object representing the version of a object performing I/O tasks on a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object representing the version of a object performing I/O tasks on a configuration file.
+
+
+ Gets or sets the object.
+ A object.
+
+
+ Instructs the host to impersonate and returns an object required internally by the .NET Framework.
+ An value.
+
+
+ Initializes the configuration host.
+
+ A parameter object containing the values used for initializing the configuration host.
+
+
+ Initializes the host for configuration.
+ A string representing a location subpath (passed by reference).
+ A string representing the path to a configuration file.
+ The location configuration path.
+
+ A parameter object representing the parameters used to initialize the host.
+
+
+ Returns a value indicating whether the configuration is above the application configuration in the configuration hierarchy.
+ A string representing the path to a configuration file.
+ true if the configuration is above the application configuration in the configuration hierarchy; otherwise, false.
+
+
+ Returns a value indicating whether a configuration record is required for the host configuration initialization.
+ A string representing the path to a configuration file.
+ true if a configuration record is required for the host configuration initialization; otherwise, false.
+
+
+ Restricts or allows definitions in the host configuration.
+ A string representing the path to a configuration file.
+ The object.
+ The object.
+ true if the grant or restriction of definitions in the host configuration was successful; otherwise, false.
+
+
+ Returns a value indicating whether the file path used by a object to read a configuration file is a valid path.
+ The name of a object performing I/O tasks on a configuration file.
+ true if the path used by a object to read a configuration file is a valid path; otherwise, false.
+
+
+ Returns a value indicating whether a configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands.
+ The object.
+ true if the configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands; otherwise, false.
+
+
+ Returns a value indicating whether the initialization of a configuration object is considered delayed.
+ The object.
+ true if the initialization of a configuration object is considered delayed; otherwise, false.
+
+
+ Returns a value indicating whether the configuration object supports a location tag.
+ A string representing the path to a configuration file.
+ true if the configuration object supports a location tag; otherwise, false.
+
+
+ Gets a value indicating whether the configuration is remote.
+ true if the configuration is remote; otherwise, false.
+
+
+ Returns a value indicating whether a configuration path is to a configuration node whose contents should be treated as a root.
+ A string representing the path to a configuration file.
+ true if the configuration path is to a configuration node whose contents should be treated as a root; otherwise, false.
+
+
+ Returns a value indicating whether the configuration path is trusted.
+ A string representing the path to a configuration file.
+ true if the configuration path is trusted; otherwise, false.
+
+
+ Opens a object to read a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ Returns the object specified by streamName.
+
+
+ Opens a object to read a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ true to assert permissions; otherwise, false.
+ Returns the object specified by streamName.
+
+
+ Opens a object for writing to a configuration file or for writing to a temporary file used to build a configuration file. Allows a object to be designated as a template for copying file attributes.
+ The name of a object performing I/O tasks on a configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object (passed by reference).
+ A object.
+
+
+ Opens a object for writing to a configuration file. Allows a object to be designated as a template for copying file attributes.
+ The name of a object performing I/O tasks on a configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object performing I/O tasks on the configuration file (passed by reference).
+ true to assert permissions; otherwise, false.
+ Returns the object specified by the streamName parameter.
+
+
+ Returns a value indicating whether the entire configuration file could be read by a designated object.
+ A string representing the path to a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ true if the entire configuration file could be read by the object designated by streamName; otherwise, false.
+
+
+ Instructs the object to read a designated section of its associated configuration file.
+ A string representing the name of a section group in the configuration file.
+ A string representing the name of a section in the configuration file.
+ true if a section of the configuration file designated by the sectionGroupName and sectionName parameters can be read by a object; otherwise, false.
+
+
+ Indicates that a new configuration record requires a complete initialization.
+ An object.
+
+
+ Instructs the host to monitor an associated object for changes in a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object to receive the returned data representing the changes in the configuration file.
+ An instance containing changed configuration settings.
+
+
+ Instructs the host object to stop monitoring an associated object for changes in a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object.
+
+
+ Gets a value indicating whether the host configuration supports change notifications.
+ true if the host supports change notifications; otherwise, false.
+
+
+ Gets a value indicating whether the host configuration supports location tags.
+ true if the host supports location tags; otherwise, false.
+
+
+ Gets a value indicating whether the host configuration has path support.
+ true if the host configuration has path support; otherwise, false.
+
+
+ Gets a value indicating whether the host configuration supports refresh.
+ true if the host configuration supports refresh; otherwise, false.
+
+
+ Verifies that a configuration definition is allowed for a configuration record.
+ A string representing the path to a configuration file.
+ An object.
+ A object
+ An object.
+
+
+ Indicates that all writing to the configuration file has completed.
+ The name of a object performing I/O tasks on a configuration file.
+ true if writing to the configuration file completed successfully; otherwise, false.
+ The write context of the object performing I/O tasks on the configuration file.
+
+
+ Indicates that all writing to the configuration file has completed and specifies whether permissions should be asserted.
+ The name of a object performing I/O tasks on a configuration file.
+ true to indicate that writing was completed successfully; otherwise, false.
+ The write context of the object performing I/O tasks on the configuration file.
+ true to assert permissions; otherwise, false.
+
+
+ Defines an interface used by the .NET Framework to support creating error configuration records.
+
+
+ Gets a string specifying the file name related to the configuration details.
+ A string specifying a filename.
+
+
+ Gets an integer specifying the line number related to the configuration details.
+ An integer specifying a line number.
+
+
+ Defines an interface used by the .NET Framework to support the initialization of configuration properties.
+
+
+ Gets the configuration host.
+ An object that is used by the .NET Framework to initialize application configuration properties.
+
+
+ Initializes a configuration object.
+ The type of configuration host.
+ An array of configuration host parameters.
+
+
+ Gets the root of the configuration hierarchy.
+ An object.
+
+
+ Defines an interface used by the .NET Framework to support configuration management.
+
+
+ Ensures that the networking configuration is loaded.
+
+
+ Provides the possible values for the configuration setting of the in the namespace.
+
+
+ This value will convert any Unicode domain names to their Punycode equivalents (IDN names).
+
+
+
+ This value will convert all external Unicode domain names to use the Punycode equivalents (IDN names). In this case to handle international names on the local Intranet, the DNS servers that are used for the Intranet should support Unicode names.
+
+
+
+ This value will not convert any Unicode domain names to use Punycode. This is the default value which is consistent with the .NET Framework 2.0 behavior.
+
+
+
+ Is the base class to create providers for encrypting and decrypting protected-configuration data.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Decrypts the passed object from a configuration file.
+
+ The object containing decrypted data.
+
+
+ Encrypts the passed object from a configuration file.
+ The object to encrypt.
+ The object containing encrypted data.
+
+
+ Provides a collection of objects.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Adds a object to the collection.
+ A object to add to the collection.
+ provider is null.
+ provider is not a object.
+ The object to add already exists in the collection. - or - The collection is read-only.
+
+
+ Gets a object in the collection with the specified name.
+ The name of a object in the collection.
+ The object with the specified name, or null if there is no object with that name.
+
+
+ Provides programmatic access to the configProtectedData configuration section. This class cannot be inherited.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Gets or sets the name of the default object in the collection property.
+ The name of the default object in the collection property.
+
+
+ Gets a collection of all the objects in all participating configuration files.
+ A collection of all the objects in all participating configuration files.
+
+
+ Represents a group of configuration elements that configure the providers for the <configProtectedData> configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a collection that represents the properties of the providers for the protected configuration data.
+ A that represents the properties of the providers for the protected configuration data.
+
+
+ Gets a collection of objects that represent the properties of the providers for the protected configuration data.
+ A collection of objects that represent the properties of the providers for the protected configuration data.
+
+
+ Provides a base implementation for the extensible provider model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).
+ A brief, friendly description suitable for display in administrative tools or other UIs.
+
+
+ Initializes the configuration builder.
+ The friendly name of the provider.
+ A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.
+ The name of the provider is null.
+ The name of the provider has a length of zero.
+ An attempt is made to call on a provider after the provider has already been initialized.
+
+
+ Gets the friendly name used to refer to the provider during configuration.
+ The friendly name used to refer to the provider during configuration.
+
+
+ Represents a collection of provider objects that inherit from .
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a provider to the collection.
+ The provider to be added.
+ The collection is read-only.
+ provider is null.
+ The of provider is null. - or - The length of the of provider is less than 1.
+
+
+ Removes all items from the collection.
+ The collection is set to read-only.
+
+
+ Copies the contents of the collection to the given array starting at the specified index.
+ The array to copy the elements of the collection to.
+ The index of the collection item at which to start the copying process.
+
+
+ Gets the number of providers in the collection.
+ The number of providers in the collection.
+
+
+ Returns an object that implements the interface to iterate through the collection.
+ An object that implements to iterate through the collection.
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread safe).
+ false in all cases.
+
+
+ Gets the provider with the specified name.
+ The key by which the provider is identified.
+ The provider with the specified name.
+
+
+ Removes a provider from the collection.
+ The name of the provider to be removed.
+ The collection has been set to read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Gets the current object.
+ The current object.
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+ The array to copy the elements of the collection to.
+ The index of the array at which to start copying provider instances from the collection.
+
+
+ The exception that is thrown when a configuration provider error has occurred. This exception class is also used by providers to throw exceptions when internal errors occur within the provider that do not map to other pre-existing exception classes.
+
+
+ Creates a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A message describing why this was thrown.
+
+
+ Creates a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+
+
+ Creates a new instance of the class.
+ A message describing why this was thrown.
+ The exception that caused this to be thrown.
+
+
+ Represents the configuration elements associated with a provider.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The name of the provider to configure settings for.
+ The type of the provider to configure settings for.
+
+
+ Gets or sets the name of the provider configured by this class.
+ The name of the provider.
+
+
+ Gets a collection of user-defined parameters for the provider.
+ A of parameters for the provider.
+
+
+ Gets or sets the type of the provider configured by this class.
+ The fully qualified namespace and class name for the type of provider configured by this instance.
+
+
+ Represents a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ The object to add.
+
+
+ Clears the collection.
+
+
+ Gets or sets a value at the specified index in the collection.
+
+ The specified .
+
+
+ Gets an item from the collection.
+ A string reference to the object within the collection.
+ A object contained in the collection.
+
+
+ Removes an element from the collection.
+
+
+
+ Provides validation of a string based on the rules provided by a regular expression.
+
+
+ Initializes a new instance of the class.
+ A string that specifies a regular expression.
+ regex is null or an empty string ("").
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+ true if the type parameter matches a string; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+ value does not conform to the parameters of the class.
+
+
+ Declaratively instructs the .NET Framework to perform string validation on a configuration property using a regular expression. This class cannot be inherited.
+
+
+ Initializes a new instance of the object.
+ The string to use for regular expression validation.
+
+
+ Gets the string used to perform regular-expression validation.
+ The string containing the regular expression used to filter the string assigned to the decorated configuration-element property.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Provides a instance that uses RSA encryption to encrypt and decrypt configuration data.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a key to the RSA key container.
+ The size of the key to add.
+ true to indicate that the key is exportable; otherwise, false.
+
+
+ Gets the name of the Windows cryptography API (crypto API) cryptographic service provider (CSP).
+ The name of the CryptoAPI cryptographic service provider.
+
+
+ Decrypts the XML node passed to it.
+
+ The decrypted XML node.
+
+
+ Removes a key from the RSA key container.
+
+
+ Encrypts the XML node passed to it.
+ The to encrypt.
+ An encrypted object.
+
+
+ Exports an RSA key from the key container.
+ The file name and path to export the key to.
+ true to indicate that private parameters are exported; otherwise, false.
+ path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by .
+ path is null.
+ The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.
+ The specified path is invalid, such as being on an unmapped drive.
+ An error occurred while opening the file.
+ path specified a file that is read-only. -or- This operation is not supported on the current platform. -or- path specified a directory. -or- The caller does not have the required permission.
+ The file specified in path was not found.
+ path is in an invalid format.
+ The caller does not have the required permission.
+
+
+ Imports an RSA key into the key container.
+ The file name and path to import the key from.
+ true to indicate that the key is exportable; otherwise, false.
+ path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by .
+ path is null.
+ The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.
+ The specified path is invalid, such as being on an unmapped drive.
+ An error occurred while opening the file.
+ path specified a file that is write-only. -or- This operation is not supported on the current platform. -or- path specified a directory. -or- The caller does not have the required permission.
+ The file specified in path was not found.
+ path is in an invalid format.
+
+
+ Initializes the provider with default settings.
+ The provider name to use for the object.
+ A collection of values to use when initializing the object.
+ configurationValues includes one or more unrecognized values.
+
+
+ Gets the name of the key container.
+ The name of the key container.
+
+
+ Gets the public key used by the provider.
+ An object that contains the public key used by the provider.
+
+
+ Gets a value indicating whether the provider uses FIPS.
+ true if the provider uses FIPS; otherwise, false.
+
+
+ Gets a value that indicates whether the object is using the machine key container.
+ true if the object is using the machine key container; otherwise, false.
+
+
+ Gets a value that indicates whether the provider is using Optimal Asymmetric Encryption Padding (OAEP) key exchange data.
+ true if the object is using Optimal Asymmetric Encryption Padding (OAEP) key exchange data; otherwise, false.
+
+
+ Represents an element in a class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the value of the GenericUriParserOptions entry from a instance.
+ The value of GenericUriParserOptions entry.
+
+
+ Gets the value of the Name entry from a instance.
+ The protocol used by this schema setting.
+
+
+ Represents a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the default collection type of .
+ The default collection type of .
+
+
+ The index of the specified .
+ The for the specified index location.
+ The index of the specified ; otherwise, -1.
+
+
+ Gets an item at the specified index in the collection.
+ The index of the to return.
+ The specified .
+ The index parameter is less than zero. -or- The item specified by the parameter is null or has been removed.
+
+
+ Gets an item from the collection.
+ A string reference to the object within the collection.
+ A object contained in the collection.
+
+
+ Contains metadata about an individual section within the configuration hierarchy. This class cannot be inherited.
+
+
+ Gets or sets a value that indicates where in the configuration file hierarchy the associated configuration section can be defined.
+ A value that indicates where in the configuration file hierarchy the associated object can be declared.
+ The selected value conflicts with a value that is already defined.
+
+
+ Gets or sets a value that indicates where in the configuration file hierarchy the associated configuration section can be declared.
+ A value that indicates where in the configuration file hierarchy the associated object can be declared for .exe files.
+ The selected value conflicts with a value that is already defined.
+
+
+ Gets or sets a value that indicates whether the configuration section allows the location attribute.
+ true if the location attribute is allowed; otherwise, false. The default is true.
+ The selected value conflicts with a value that is already defined.
+
+
+ Gets or sets a value that indicates whether the associated configuration section can be overridden by lower-level configuration files.
+ true if the section can be overridden; otherwise, false. The default is false.
+
+
+ Gets or sets the name of the include file in which the associated configuration section is defined, if such a file exists.
+ The name of the include file in which the associated is defined, if such a file exists; otherwise, an empty string ("").
+
+
+ Forces the associated configuration section to appear in the configuration file.
+
+
+ Forces the associated configuration section to appear in the configuration file, or removes an existing section from the configuration file.
+
+ require is true and the associated section cannot be exported to the child configuration file, or it is undeclared.
+
+
+ Gets or sets a value that indicates whether the associated configuration section will be saved even if it has not been modified.
+ true
if the associated object will be saved even if it has not been modified; otherwise, false
. The default is false
.
+
If the configuration file is saved (even if there are no modifications), ASP.NET restarts the application.
+
+
+
+
+ Gets the configuration section that contains the configuration section associated with this object.
+ The configuration section that contains the that is associated with this object.
+ The method is invoked from a parent section.
+
+
+ Returns an XML node object that represents the associated configuration-section object.
+ The XML representation for this configuration section.
+ This configuration object is locked and cannot be edited.
+
+
+ Gets or sets a value that indicates whether the settings that are specified in the associated configuration section are inherited by applications that reside in a subdirectory of the relevant application.
+ true if the settings specified in this object are inherited by child applications; otherwise, false. The default is true.
+
+
+ Gets a value that indicates whether the configuration section must be declared in the configuration file.
+ true if the associated object must be declared in the configuration file; otherwise, false.
+
+
+ Gets a value that indicates whether the associated configuration section is declared in the configuration file.
+ true if this is declared in the configuration file; otherwise, false. The default is true.
+
+
+ Gets a value that indicates whether the associated configuration section is locked.
+ true if the section is locked; otherwise, false.
+
+
+ Gets a value that indicates whether the associated configuration section is protected.
+ true if this is protected; otherwise, false. The default is false.
+
+
+ Gets the name of the associated configuration section.
+ The complete name of the configuration section.
+
+
+ Gets or sets the enumeration value that specifies whether the associated configuration section can be overridden by child configuration files.
+ One of the enumeration values.
+ An attempt was made to change both the and properties, which is not supported for compatibility reasons.
+
+
+ Gets or sets a value that specifies the default override behavior of a configuration section by child configuration files.
+ One of the enumeration values.
+ The override behavior is specified in a parent configuration section.
+
+
+ Gets the override behavior of a configuration section that is in turn based on whether child configuration files can lock the configuration section.
+ One of the enumeration values.
+
+
+ Gets the protected configuration provider for the associated configuration section.
+ The protected configuration provider for this object.
+
+
+ Marks a configuration section for protection.
+
+ The property is set to false. - or - The target section is already a protected data section.
+
+
+ Gets a value that indicates whether the associated configuration section requires access permissions.
+ true if the requirePermission attribute is set to true; otherwise, false. The default is true.
+ The selected value conflicts with a value that is already defined.
+
+
+ Gets or sets a value that specifies whether a change in an external configuration include file requires an application restart.
+ true if a change in an external configuration include file requires an application restart; otherwise, false. The default is true.
+ The selected value conflicts with a value that is already defined.
+
+
+ Causes the associated configuration section to inherit all its values from the parent section.
+ This method cannot be called outside editing mode.
+
+
+ Gets the name of the associated configuration section.
+ The name of the associated object.
+
+
+ Sets the object to an XML representation of the associated configuration section within the configuration file.
+
+ xml is null.
+
+
+ Gets or sets the section class name.
+ The name of the class that is associated with this section.
+ The selected value is null or an empty string ("").
+ The selected value conflicts with a value that is already defined.
+
+
+ Removes the protected configuration encryption from the associated configuration section.
+
+
+ Represents a custom settings attribute used to associate settings information with a settings property.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides data for the event.
+
+
+ Initializes an instance of the class.
+ A containing the name of the application setting.
+ A containing a category description of the setting. Often this parameter is set to the application settings group name.
+ A containing the application settings key.
+ An that contains the new value to be assigned to the application settings property.
+ true to cancel the event; otherwise, false.
+
+
+ Gets the new value being assigned to the application settings property.
+ An that contains the new value to be assigned to the application settings property.
+
+
+ Gets the application settings property category.
+ A containing a category description of the setting. Typically, this parameter is set to the application settings group name.
+
+
+ Gets the application settings key associated with the property.
+ A containing the application settings key.
+
+
+ Gets the name of the application setting associated with the application settings property.
+ A containing the name of the application setting.
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically an application settings wrapper class derived from the class.
+ A containing the data for the event.
+
+
+ Represents a simplified configuration element used for updating elements in the configuration. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ The name of the object.
+ A object. This object is an enumeration used as the serialization scheme to store configuration settings.
+
+
+ Compares the current instance to the specified object.
+
+ true if the instance is equal to the specified object; otherwise, false.
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Gets or sets the name of the object.
+ The name of the object.
+
+
+ Gets or sets the serialization mechanism used to persist the values of the object.
+ A object.
+
+
+ Gets or sets the value of a object by using a object.
+ A object containing the value of the object.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ The object to add to the collection.
+
+
+ Removes all objects from the collection.
+
+
+ Gets the type of the configuration collection.
+ The object of the collection.
+
+
+ Gets a object from the collection.
+ A string value representing the object in the collection.
+ A object.
+
+
+ Removes a object from the collection.
+ A object.
+
+
+ Represents a collection of key/value pairs used to describe a configuration object as well as a object.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A collection of key/value pairs that are related to configuration settings.
+
+
+ Provides the base class used to support user property settings.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the associated settings context.
+ A associated with the settings instance.
+
+
+ Initializes internal properties used by object.
+ The settings context related to the settings properties.
+ The settings properties that will be accessible from the instance.
+ The initialized providers that should be used when loading and saving property values.
+
+
+ Gets a value indicating whether access to the object is synchronized (thread safe).
+ true if access to the is synchronized; otherwise, false.
+
+
+ Gets or sets the value of the specified settings property.
+ A containing the name of the property to access.
+ If found, the value of the named settings property.
+ There are no properties associated with the current object, or the specified property could not be found.
+ An attempt was made to set a read-only property.
+ The value supplied is of a type incompatible with the settings property, during a set operation.
+
+
+ Gets the collection of settings properties.
+ A collection containing all the objects.
+
+
+ Gets a collection of settings property values.
+ A collection of objects representing the actual data values for the properties managed by the instance.
+
+
+ Gets a collection of settings providers.
+ A containing objects.
+
+
+ Stores the current values of the settings properties.
+
+
+ Provides a class that is synchronized (thread safe).
+ The class used to support user property settings.
+ A class that is synchronized.
+
+
+ Provides contextual information that the provider can use when persisting settings.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a string that describes an individual configuration property. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ The used as descriptive text.
+
+
+ Gets the descriptive text for the associated configuration property.
+ A containing the descriptive text for the associated configuration property.
+
+
+ Provides a string that describes an application settings property group. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A containing the descriptive text for the application settings group.
+
+
+ The descriptive text for the application settings properties group.
+ A containing the descriptive text for the application settings group.
+
+
+ Specifies a name for application settings property group. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A containing the name of the application settings property group.
+
+
+ Gets the name of the application settings property group.
+ A containing the name of the application settings property group.
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+ A object from which settings are loaded.
+
+
+ Gets the settings provider used to store configuration settings.
+ A settings provider.
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically the settings class.
+ A object that contains the event data.
+
+
+ Provides values to indicate which services should be made available to application settings.
+
+
+ Enables application settings to be stored in roaming user profiles. For more information about roaming user profiles, see Isolated Storage and Roaming.
+
+
+
+ Specifies special services for application settings properties. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A value that enumerates the services being requested.
+
+
+ Gets the set of special services that have been requested.
+ A value that results from using the logical OR operator to combine all the enumeration values corresponding to the requested services.
+
+
+ Used internally as the class that represents metadata about an individual configuration property.
+
+
+ Initializes a new instance of the class, based on the supplied parameter.
+ Specifies a copy of an existing object.
+
+
+ Initializes a new instance of the class. based on the supplied parameter.
+ Specifies the name of an existing object.
+
+
+ Creates a new instance of the class based on the supplied parameters.
+ The name of the object.
+ The type of object.
+ A object to use for persistence.
+ A value specifying whether the object is read-only.
+ The default value of the object.
+ A object. This object is an enumeration used to set the serialization scheme for storing application settings.
+ A object.
+ A Boolean value specifying whether an error will be thrown when the property is unsuccessfully deserialized.
+ A Boolean value specifying whether an error will be thrown when the property is unsuccessfully serialized.
+
+
+ Gets a object containing the attributes of the object.
+ A object.
+
+
+ Gets or sets the default value of the object.
+ An object containing the default value of the object.
+
+
+ Gets or sets a value specifying whether a object is read-only.
+ true if the is read-only; otherwise, false.
+
+
+ Gets or sets the name of the .
+ The name of the .
+
+
+ Gets or sets the type for the .
+ The type for the .
+
+
+ Gets or sets the provider for the .
+ A object.
+
+
+ Gets or sets a object for the .
+ A object.
+
+
+ Gets or sets a value specifying whether an error will be thrown when the property is unsuccessfully deserialized.
+ true if the error will be thrown when the property is unsuccessfully deserialized; otherwise, false.
+
+
+ Gets or sets a value specifying whether an error will be thrown when the property is unsuccessfully serialized.
+ true if the error will be thrown when the property is unsuccessfully serialized; otherwise, false.
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+ The collection is read-only.
+
+
+ Removes all objects from the collection.
+ The collection is read-only.
+
+
+ Creates a copy of the existing collection.
+ A class.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index at which to begin copying.
+
+
+ Gets a value that specifies the number of objects in the collection.
+ The number of objects in the collection.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection.
+
+
+ Gets a value that indicates whether access to the collection is synchronized (thread safe).
+ true if access to the is synchronized; otherwise, false.
+
+
+ Gets the collection item with the specified name.
+ The name of the object.
+ The object with the specified name.
+
+
+ Performs additional, custom processing when adding to the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing after adding to the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing when clearing the contents of the instance.
+
+
+ Performs additional, custom processing after clearing the contents of the instance.
+
+
+ Performs additional, custom processing when removing the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing after removing the contents of the instance.
+ A object.
+
+
+ Removes a object from the collection.
+ The name of the object.
+ The collection is read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Provides an exception for read-only objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on a supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The object that holds the serialized object data about the exception being thrown.
+ The object that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Provides an exception for objects that are not found.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ The object that holds the serialized object data about the exception being thrown.
+ The object that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Contains the value of a settings property that can be loaded and stored by an instance of .
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ Specifies a object.
+
+
+ Gets or sets whether the value of a object has been deserialized.
+ true if the value of a object has been deserialized; otherwise, false.
+
+
+ Gets or sets whether the value of a object has changed.
+ true if the value of a object has changed; otherwise, false.
+
+
+ Gets the name of the property from the associated object.
+ The name of the object.
+
+
+ Gets the object.
+ The object that describes the object.
+
+
+ Gets or sets the value of the object.
+ The value of the object. When this value is set, the property is set to true and is set to false. When a value is first accessed from the property, and if the value was initially stored into the object as a serialized representation using the property, the property will trigger deserialization of the underlying value. As a side effect, the property will be set to true. If this chain of events occurs in ASP.NET, and if an error occurs during the deserialization process, the error is logged using the health-monitoring feature of ASP.NET. By default, this means that deserialization errors will show up in the Application Event Log when running under ASP.NET. If this process occurs outside of ASP.NET, and if an error occurs during deserialization, the error is suppressed, and the remainder of the logic during deserialization occurs. If there is no serialized value to deserialize when the deserialization is attempted, then object will instead attempt to return a default value if one was configured as defined on the associated instance. In this case, if the property was set to either null, or to the string "[null]", then the object will initialize the property to either null for reference types, or to the default value for the associated value type. On the other hand, if property holds a valid object reference or string value (other than "[null]"), then the property is returned instead. If there is no serialized value to deserialize when the deserialization is attempted, and no default value was specified, then an empty string will be returned for string types. For all other types, a default instance will be returned by calling — for reference types this means an attempt will be made to create an object instance using the default constructor. If this attempt fails, then null is returned.
+ While attempting to use the default value from the property, an error occurred. Either the attempt to convert property to a valid type failed, or the resulting value was not compatible with the type defined by .
+
+
+ Gets or sets the serialized value of the object.
+ The serialized value of a object.
+ The serialization options for the property indicated the use of a string type converter, but a type converter was not available.
+
+
+ Gets a Boolean value specifying whether the value of the object is the default value as defined by the property value on the associated object.
+ true if the value of the object is the default value; otherwise, false.
+
+
+ Contains a collection of settings property values that map objects to objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+ An attempt was made to add an item to the collection, but the collection was marked as read-only.
+
+
+ Removes all objects from the collection.
+
+
+ Creates a copy of the existing collection.
+ A class.
+
+
+ Copies this collection to an array.
+ The array to copy the collection to.
+ The index at which to begin copying.
+
+
+ Gets a value that specifies the number of objects in the collection.
+ The number of objects in the collection.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection.
+
+
+ Gets a value that indicates whether access to the collection is synchronized (thread safe).
+ true if access to the collection is synchronized; otherwise, false.
+
+
+ Gets an item from the collection.
+ A object.
+ The object with the specified name.
+
+
+ Removes a object from the collection.
+ The name of the object.
+ An attempt was made to remove an item from the collection, but the collection was marked as read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Provides an exception that is thrown when an invalid type is used with a object.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Acts as a base class for deriving custom settings providers in the application settings architecture.
+
+
+ Initializes an instance of the class.
+
+
+ Gets or sets the name of the currently running application.
+ A that contains the application's shortened name, which does not contain a full path or extension, for example, SimpleAppSettings.
+
+
+ Returns the collection of settings property values for the specified application instance and settings property group.
+ A describing the current application use.
+ A containing the settings property group whose values are to be retrieved.
+ A containing the values for the specified settings property group.
+
+
+ Sets the values of the specified group of property settings.
+ A describing the current application usage.
+ A representing the group of property settings to set.
+
+
+ Specifies the settings provider used to provide storage for the current application settings class or property. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ A containing the name of the settings provider.
+
+
+ Initializes a new instance of the class.
+ A containing the settings provider type.
+
+
+ Gets the type name of the settings provider.
+ A containing the name of the settings provider.
+
+
+ Represents a collection of application settings providers.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a new settings provider to the collection.
+ A to add to the collection.
+ The provider parameter is not of type . -or- The property of the provider parameter is null or an empty string. -or- A settings provider with the same already exists in the collection.
+ The collection is read-only.
+ The provider parameter is null.
+
+
+ Gets the settings provider in the collection that matches the specified name.
+ A containing the friendly name of the settings provider.
+ If found, the whose name matches that specified by the name parameter; otherwise, null.
+ The name parameter is null.
+ The collection is read-only when setting this value.
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically a data container or data-bound collection.
+ A that contains the event data.
+
+
+ Determines the serialization scheme used to store application settings.
+
+
+ The settings property is serialized using binary object serialization.
+
+
+
+ The settings provider has implicit knowledge of the property or its type and picks an appropriate serialization mechanism. Often used for custom serialization.
+
+
+
+ The settings property is serialized as plain text.
+
+
+
+ The settings property is serialized as XML using XML serialization.
+
+
+
+ Specifies the serialization mechanism that the settings provider should use. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ A enumerated value that specifies the serialization scheme.
+
+
+ Gets the enumeration value that specifies the serialization scheme.
+ A enumerated value that specifies the serialization scheme.
+
+
+ Contains the XML representing the serialized value of the setting. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Compares the current instance to the specified object.
+ The object to compare.
+ true if the instance is equal to the specified object; otherwise, false.
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Gets or sets the value of a object by using an object.
+ An object containing the value of a .
+
+
+ Handles configuration sections that are represented by a single XML tag in the .config file.
+
+
+ Initializes a new instance of the class.
+
+
+ Used internally to create a new instance of this object.
+ The parent of this object.
+ The context of this object.
+ The object in the configuration.
+ The created object handler.
+
+
+ Specifies the special setting category of a application settings property.
+
+
+ The configuration property represents a connection string, typically for a data store or network resource.
+
+
+
+ The configuration property represents a Uniform Resource Locator (URL) to a Web service.
+
+
+
+ Indicates that an application settings property has a special significance. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Gets the value describing the special setting category of the application settings property.
+ A enumeration value defining the category of the application settings property.
+
+
+ Provides validation of a string.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ An integer that specifies the minimum length of the string value.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ An integer that specifies the minimum length of the string value.
+ An integer that specifies the maximum length of the string value.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ An integer that specifies the minimum length of the string value.
+ An integer that specifies the maximum length of the string value.
+ A string that represents invalid characters.
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+ true if the type parameter matches a string; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+ value is less than minValue or greater than maxValue as defined in the constructor. - or - value contains invalid characters.
+
+
+ Declaratively instructs the .NET Framework to perform string validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the invalid characters for the property.
+ The string that contains the set of characters that are not allowed for the property.
+
+
+ Gets or sets the maximum length allowed for the string to assign to the property.
+ An integer that indicates the maximum allowed length for the string to assign to the property.
+ The selected value is less than .
+
+
+ Gets or sets the minimum allowed value for the string to assign to the property.
+ An integer that indicates the allowed minimum length for the string to assign to the property.
+ The selected value is greater than .
+
+
+ Gets an instance of the class.
+ A current settings in a validator instance.
+
+
+ Validates that an object is a derived class of a specified type.
+
+
+ Initializes a new instance of the class.
+ The base class to validate against.
+ baseClass is null.
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+ true if the type parameter matches a type that can be validated; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+ value is not of a that can be derived from baseClass as defined in the constructor.
+
+
+ Declaratively instructs the .NET Framework to perform validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The base class type.
+
+
+ Gets the base type of the object being validated.
+ The base type of the object being validated.
+
+
+ Gets the validator attribute instance.
+ The current instance.
+
+
+ Converts a time span expressed in minutes.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The representing the data parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The representing the value parameter in minutes.
+
+
+ Converts a expressed in minutes or as a standard infinite time span.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The , if the data parameter is the "infinite"; otherwise, the representing the data parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the value parameter is ; otherwise, the representing the value parameter in minutes.
+
+
+ Converts a time span expressed in seconds.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The representing the data parameter in seconds.
+ data cannot be parsed as an integer value.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the value parameter in minutes.
+
+
+ Converts a expressed in seconds or as a standard infinite time span.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The , if the data parameter is the "infinite"; otherwise, the representing the data parameter in seconds.
+
+
+ Converts a to a. .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the value parameter is ; otherwise, the representing the value parameter in seconds.
+
+
+ Provides validation of a object.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+ A value that specifies whether the validation range is exclusive.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+ A value that specifies whether the validation range is exclusive.
+ An value that specifies a number of seconds.
+ resolutionInSeconds is less than 0. - or - minValue is greater than maxValue.
+
+
+ Determines whether the type of the object can be validated.
+ The type of the object.
+ true if the type parameter matches a value; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Declaratively instructs the .NET Framework to perform time validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range as defined by and .
+ true if the value must be excluded; otherwise, false. The default is false.
+
+
+ Gets the absolute maximum value.
+ The allowed maximum value.
+
+
+ Gets or sets the relative maximum value.
+ The allowed maximum value.
+ The selected value represents less than .
+
+
+ Gets the absolute minimum value.
+ The allowed minimum value.
+
+
+ Gets or sets the relative minimum value.
+ The minimum allowed value.
+ The selected value represents more than .
+
+
+ Gets the absolute maximum value allowed.
+
+
+
+ Gets the absolute minimum value allowed.
+
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Converts between type and string values. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a object to a object.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The that represents the data parameter.
+ The value cannot be resolved.
+
+
+ Converts a object to a object.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the value parameter.
+
+
+ Represents the Uri section within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an object that contains the configuration setting for International Domain Name (IDN) processing in the class.
+ The configuration setting for International Domain Name (IDN) processing in the class.
+
+
+ Gets an object that contains the configuration setting for International Resource Identifiers (IRI) parsing in the class.
+ The configuration setting for International Resource Identifiers (IRI) parsing in the class.
+
+
+ Gets a object that contains the configuration settings for scheme parsing in the class.
+ The configuration settings for scheme parsing in the class
+
+
+ Specifies that an application settings group or property contains distinct values for each user of an application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents a grouping of related user settings sections within a configuration file. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents a method to be called after the validation of an object.
+
+
+
+ Converts a string to its canonical format.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to canonical form.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ An object representing the converted value.
+
+
+ Converts a to canonical form.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ An object representing the converted value.
+
+
+ Specifies the property of a configuration element. This class cannot be inherited.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ A object.
+ validator is null.
+
+
+ Gets a object used to validate the object.
+ A object.
+
+
+ The exception that is thrown when a configuration error has occurred.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The path to the configuration file that caused this exception to be thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of a class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The path to the configuration file that caused this exception to be thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The exception that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+ The current type is not a or a .
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The object that caused this exception to be thrown.
+
+
+ Gets a description of why this configuration exception was thrown.
+ A description of why this was thrown.
+
+
+ Gets a collection of errors that detail the reasons this exception was thrown.
+ An object that contains errors that identify the reasons this exception was thrown.
+
+
+ Gets the path to the configuration file that caused this configuration exception to be thrown.
+ The path to the configuration file that caused this to be thrown.
+
+
+ Gets the path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+
+
+ Gets the path to the configuration file that the internal was reading when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The path of the configuration file the internal object was accessing when the exception occurred.
+
+
+ Gets the line number within the configuration file that the internal object represented when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The line number within the configuration file that contains the object being parsed when this configuration exception was thrown.
+
+
+ Gets the line number within the configuration file that the internal object was processing when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The line number within the configuration file that the object was accessing when the exception occurred.
+
+
+ Sets the object with the file name and line number at which this configuration exception occurred.
+ The object that holds the information to be serialized.
+ The contextual information about the source or destination.
+
+
+ Gets the line number within the configuration file at which this configuration exception was thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Gets an extended description of why this configuration exception was thrown.
+ An extended description of why this exception was thrown.
+
+
+ The exception that is thrown when a configuration system error has occurred.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The that caused this to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+ The that caused this to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The path to the configuration file that caused this to be thrown.
+ The line number within the configuration file at which this was thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+ The path to the configuration file that caused this to be thrown.
+ The line number within the configuration file at which this was thrown.
+
+
+ Gets a description of why this configuration exception was thrown.
+ A description of why this exception was thrown.
+
+
+ Gets the path to the configuration file that caused this configuration exception to be thrown.
+ The path to the configuration file that caused this exception to be thrown.
+
+
+ Sets the object with the file name and line number at which this configuration exception occurred.
+ The object that holds the information to be serialized.
+ The contextual information about the source or destination.
+
+
+ Gets the path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+ The that caused this exception to be thrown.
+ A string representing the node file name.
+
+
+ Gets the line number within the configuration file that the internal object represented when this configuration exception was thrown.
+ The that caused this exception to be thrown.
+ An int representing the node line number.
+
+
+ Gets the line number within the configuration file at which this configuration exception was thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Gets an extended description of why this configuration exception was thrown.
+ An extended description of why this exception was thrown.
+
+
+ Defines the configuration file mapping for the machine configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the supplied parameter.
+ The name of the machine configuration file.
+
+
+ Creates a copy of the existing object.
+ A object.
+
+
+ Gets or sets the name of the machine configuration file name.
+ The machine configuration file name.
+
+
+ Represents a location element within a configuration file.
+
+
+ Creates an instance of a Configuration object.
+ A Configuration object.
+
+
+ Gets the relative path to the resource whose configuration settings are represented by this object.
+ The relative path to the resource whose configuration settings are represented by this .
+
+
+ Contains a collection of objects.
+
+
+ Gets the object at the specified index.
+ The index location of the to return.
+ The at the specified index.
+
+
+ Contains a collection of locked configuration objects. This class cannot be inherited.
+
+
+ Locks a configuration object by adding it to the collection.
+ The name of the configuration object.
+ Occurs when the name does not match an existing configuration object within the collection.
+
+
+ Gets a list of configuration objects contained in the collection.
+ A comma-delimited string that lists the lock configuration objects in the collection.
+
+
+ Clears all configuration objects from the collection.
+
+
+ Verifies whether a specific configuration object is locked.
+ The name of the configuration object to verify.
+ true if the contains the specified configuration object; otherwise, false.
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the . The must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+
+
+ Gets the number of locked configuration objects contained in the collection.
+ The number of locked configuration objects contained in the collection.
+
+
+ Gets an object, which is used to iterate through this collection.
+ An object.
+
+
+ Gets a value specifying whether the collection of locked objects has parent elements.
+ true if the collection has parent elements; otherwise, false.
+
+
+ Gets a value specifying whether the collection has been modified.
+ true if the collection has been modified; otherwise, false.
+
+
+ Verifies whether a specific configuration object is read-only.
+ The name of the configuration object to verify.
+ true if the specified configuration object in the collection is read-only; otherwise, false.
+ The specified configuration object is not in the collection.
+
+
+ Gets a value specifying whether the collection is synchronized.
+ true if the collection is synchronized; otherwise, false.
+
+
+ Removes a configuration object from the collection.
+ The name of the configuration object.
+ Occurs when the name does not match an existing configuration object within the collection.
+
+
+ Locks a set of configuration objects based on the supplied list.
+ A comma-delimited string.
+ Occurs when an item in the attributeList parameter is not a valid lockable configuration attribute.
+
+
+ Gets an object used to synchronize access to this collection.
+ An object used to synchronize access to this collection.
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the collection. The must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+
+
+ Provides access to configuration files for client applications. This class cannot be inherited.
+
+
+ Gets the data for the current application's default configuration.
+ Returns a object that contains the contents of the object for the current application's default configuration.
+ Could not retrieve a object with the application settings data.
+
+
+ Gets the data for the current application's default configuration.
+ Returns a object that contains the contents of the object for the current application's default configuration.
+ Could not retrieve a object.
+
+
+ Retrieves a specified configuration section for the current application's default configuration.
+ The configuration section path and name.
+ The specified object, or null if the section does not exist.
+ A configuration file could not be loaded.
+
+
+ Opens the configuration file for the current application as a object.
+ The for which you are opening the configuration.
+ A object.
+ A configuration file could not be loaded.
+
+
+ Opens the specified client configuration file as a object.
+ The path of the executable (exe) file.
+ A object.
+ A configuration file could not be loaded.
+
+
+ Opens the machine configuration file on the current computer as a object.
+ A object.
+ A configuration file could not be loaded.
+
+
+ Opens the specified client configuration file as a object that uses the specified file mapping and user level.
+ An object that references configuration file to use instead of the application default configuration file.
+ The object for which you are opening the configuration.
+ The configuration object.
+ A configuration file could not be loaded.
+
+
+ Opens the specified client configuration file as a object that uses the specified file mapping, user level, and preload option.
+ An object that references the configuration file to use instead of the default application configuration file.
+ The object for which you are opening the configuration.
+ true to preload all section groups and sections; otherwise, false.
+ The configuration object.
+ A configuration file could not be loaded.
+
+
+ Opens the machine configuration file as a object that uses the specified file mapping.
+ An object that references configuration file to use instead of the application default configuration file.
+ A object.
+ A configuration file could not be loaded.
+
+
+ Refreshes the named section so the next time that it is retrieved it will be re-read from disk.
+ The configuration section name or the configuration path and section name of the section to refresh.
+
+
+ Represents an attribute or a child of a configuration element. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+
+
+ The description of the configuration entity.
+
+
+ Gets the used to convert this into an XML representation for writing to the configuration file.
+ A used to convert this into an XML representation for writing to the configuration file.
+ This cannot be converted.
+
+
+ Gets the default value for this property.
+ An that can be cast to the type specified by the property.
+
+
+ Gets the description associated with the .
+ A string value that describes the property.
+
+
+ Indicates whether the assembly name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+ true if the property requires assembly name transformation; otherwise, false.
+
+
+ Gets a value that indicates whether the property is the default collection of an element.
+ true if the property is the default collection of an element; otherwise, false.
+
+
+ Gets a value indicating whether this is the key for the containing object.
+ true if this object is the key for the containing element; otherwise, false. The default is false.
+
+
+ Gets a value indicating whether this is required.
+ true if the is required; otherwise, false. The default is false.
+
+
+ Indicates whether the type name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+ true if the property requires type-name transformation; otherwise, false.
+
+
+ Indicates whether the configuration property's parent configuration section is queried at serialization time to determine whether the configuration property should be serialized into XML.
+ true if the parent configuration section should be queried; otherwise, false.
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ Gets the type of this object.
+ A representing the type of this object.
+
+
+ Gets the , which is used to validate this object.
+ The validator, which is used to validate this .
+
+
+ Declaratively instructs the .NET Framework to instantiate a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of class.
+ Name of the object defined.
+
+
+ Gets or sets the default value for the decorated property.
+ The object representing the default value of the decorated configuration-element property.
+
+
+ Gets or sets a value indicating whether this is the default property collection for the decorated configuration property.
+ true if the property represents the default collection of an element; otherwise, false. The default is false.
+
+
+ Gets or sets a value indicating whether this is a key property for the decorated element property.
+ true if the property is a key property for an element of the collection; otherwise, false. The default is false.
+
+
+ Gets or sets a value indicating whether the decorated element property is required.
+ true if the property is required; otherwise, false. The default is false.
+
+
+ Gets the name of the decorated configuration-element property.
+ The name of the decorated configuration-element property.
+
+
+ Gets or sets the for the decorated configuration-element property.
+ One of the enumeration values associated with the property.
+
+
+ Represents a collection of configuration-element properties.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a configuration property to the collection.
+ The to add.
+
+
+ Removes all configuration property objects from the collection.
+
+
+ Specifies whether the configuration property is contained in this collection.
+ An identifier for the to verify.
+ true if the specified is contained in the collection; otherwise, false.
+
+
+ Copies this ConfigurationPropertyCollection to an array.
+ Array to which to copy.
+ Index at which to begin copying.
+
+
+ Gets the number of properties in the collection.
+ The number of properties in the collection.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread safe).
+ true if access to the is synchronized; otherwise, false.
+
+
+ Gets the collection item with the specified name.
+ The to return.
+ The with the specified name.
+
+
+ Removes a configuration property from the collection.
+ The to remove.
+ true if the specified was removed; otherwise, false.
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Copies this collection to an array.
+ The array to which to copy.
+ The index location at which to begin copying.
+
+
+ Specifies the options to apply to a property.
+
+
+ Indicates whether the assembly name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+
+
+
+ Indicates that the property is a default collection.
+
+
+
+ Indicates that the property is a collection key.
+
+
+
+ Indicates that the property is required.
+
+
+
+ Indicates whether the type name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+
+
+
+ Indicates whether the configuration property's parent configuration section should be queried at serialization time to determine whether the configuration property should be serialized into XML.
+
+
+
+ Indicates that no option applies to the property.
+
+
+
+ Determines which properties are written out to a configuration file.
+
+
+ Causes all properties to be written to the configuration file. This is useful mostly for creating information configuration files or moving configuration values from one machine to another.
+
+
+
+ Causes only properties that differ from inherited values to be written to the configuration file.
+
+
+
+ Causes only modified properties to be written to the configuration file, even when the value is the same as the inherited value.
+
+
+
+ Represents a section within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Reads XML from the configuration file.
+ The object, which reads from the configuration file.
+ reader found no elements in the configuration file.
+
+
+ Returns a custom object when overridden in a derived class.
+ The object representing the section.
+
+
+ Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.
+ true if the element has been modified; otherwise, false.
+
+
+ Resets the value of the method to false when implemented in a derived class.
+
+
+ Gets a object that contains the non-customizable information and functionality of the object.
+ A that contains the non-customizable information and functionality of the .
+
+
+ Creates an XML string containing an unmerged view of the object as a single section to write to a file.
+ The instance to use as the parent when performing the un-merge.
+ The name of the section to create.
+ The instance to use when writing to a string.
+ An XML string containing an unmerged view of the object.
+
+
+ Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The object that is a candidate for serialization.
+ The name of the object as it occurs in XML.
+ The target version of the .NET Framework.
+ true if the element should be serialized; otherwise, false.
+
+
+ Indicates whether the specified property should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The object that is a candidate for serialization.
+ The name of the object as it occurs in XML.
+ The target version of the .NET Framework.
+ The parent element of the property.
+ true if the property should be serialized; otherwise, false.
+
+
+ Indicates whether the current instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The target version of the .NET Framework.
+ true if the current section should be serialized; otherwise, false.
+
+
+ Represents a collection of related sections within a configuration file.
+
+
+ Adds a object to the object.
+ The name of the section to be added.
+ The section to be added.
+
+
+ Clears this object.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index location at which to begin copying.
+ array is null.
+ The length of array is less than the value of plus index.
+
+
+ Gets the number of sections in this object.
+ An integer that represents the number of sections in the collection.
+
+
+ Gets the specified object contained in this object.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object contained in this object.
+ The name of the object to be returned.
+ The object with the specified name.
+ name is null or an empty string ("").
+
+
+ Gets an enumerator that can iterate through this object.
+ An that can be used to iterate through this object.
+
+
+ Gets the key of the specified object contained in this object.
+ The index of the object whose key is to be returned.
+ The key of the object at the specified index.
+
+
+ Used by the system during serialization.
+ The applicable object.
+ The applicable object.
+
+
+ Gets the specified object.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object.
+ The name of the object to be returned.
+ The object with the specified name.
+
+
+ Gets the keys to all objects contained in this object.
+ A object that contains the keys of all sections in this collection.
+
+
+ Removes the specified object from this object.
+ The name of the section to be removed.
+
+
+ Removes the specified object from this object.
+ The index of the section to be removed.
+
+
+ Represents a group of related sections within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Forces the declaration for this object.
+
+
+ Forces the declaration for this object.
+
+ The object is the root section group. - or - The object has a location.
+
+
+ Gets a value that indicates whether this object declaration is required.
+ true if this declaration is required; otherwise, false.
+
+
+ Gets a value that indicates whether this object is declared.
+ true if this is declared; otherwise, false. The default is false.
+
+
+ Gets the name property of this object.
+ The name property of this object.
+
+
+ Gets the section group name associated with this .
+ The section group name of this object.
+
+
+ Gets a object that contains all the objects that are children of this object.
+ A object that contains all the objects that are children of this object.
+
+
+ Gets a object that contains all of objects within this object.
+ A object that contains all the objects within this object.
+
+
+ Indicates whether the current instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The target version of the .NET Framework.
+ true if the current section group should be serialized; otherwise, false.
+
+
+ Gets or sets the type for this object.
+ The type of this object.
+ The object is the root section group. - or - The object has a location.
+ The section or group is already defined at another level.
+
+
+ Represents a collection of objects.
+
+
+ Adds a object to this object.
+ The name of the object to be added.
+ The object to be added.
+
+
+ Clears the collection.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index location at which to begin copying.
+ array is null.
+ The length of array is less than the value of plus index.
+
+
+ Gets the number of section groups in the collection.
+ An integer that represents the number of section groups in the collection.
+
+
+ Gets the specified object contained in the collection.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object from the collection.
+ The name of the object to be returned.
+ The object with the specified name.
+ name is null or an empty string ("").
+
+
+ Gets an enumerator that can iterate through the object.
+ An that can be used to iterate through the object.
+
+
+ Gets the key of the specified object contained in this object.
+ The index of the section group whose key is to be returned.
+ The key of the object at the specified index.
+
+
+ Used by the system during serialization.
+ The applicable object.
+ The applicable object.
+
+
+ Gets the object whose index is specified from the collection.
+ The index of the object to be returned.
+ The object at the specified index. In C#, this property is the indexer for the class.
+
+
+ Gets the object whose name is specified from the collection.
+ The name of the object to be returned.
+ The object with the specified name. In C#, this property is the indexer for the class.
+
+
+ Gets the keys to all objects contained in this object.
+ A object that contains the names of all section groups in this collection.
+
+
+ Removes the object whose name is specified from this object.
+ The name of the section group to be removed.
+
+
+ Removes the object whose index is specified from this object.
+ The index of the section group to be removed.
+
+
+ Provides runtime versions 1.0 and 1.1 support for reading configuration sections and common configuration settings.
+
+
+ Gets a read-only of the application settings section of the configuration file.
+ A read-only of the application settings section from the configuration file.
+
+
+ Returns the object for the passed configuration section name and path.
+ A configuration name and path, such as "system.net/settings".
+ The object for the passed configuration section name and path.
+
The class provides backward compatibility only. You should use the class or class instead.
+
+
+ Unable to retrieve the requested section.
+
+
+ Used to specify which configuration file is to be represented by the Configuration object.
+
+
+ Get the that applies to all users.
+
+
+
+ Get the roaming that applies to the current user.
+
+
+
+ Get the local that applies to the current user.
+
+
+
+ Serves as the base class for the validator attribute types.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified validator type.
+ The validator type to use when creating an instance of .
+ validator is null.
+ validator is not derived from .
+
+
+ Gets the validator attribute instance.
+ The current .
+
+
+ Gets the type of the validator attribute.
+ The of the current validator attribute instance.
+
+
+ Acts as a base class for deriving a validation class so that a value of an object can be verified.
+
+
+ Initializes an instance of the class.
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+ true if the type parameter value matches the expected type; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+
+
+ Wraps the corresponding type and also carries the necessary information for reporting file-name and line numbers.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a configuration element attribute.
+ The prefix definition.
+ The name that is used locally.
+ The URL that is assigned to the namespace.
+ The attribute.
+
+
+ Creates an XML CData section.
+ The data to use.
+ The value.
+
+
+ Create an XML comment.
+
+ The value.
+
+
+ Creates a configuration element.
+ The prefix definition.
+ The name used locally.
+ The namespace for the URL.
+ The value.
+
+
+ Creates white spaces.
+ The data to use.
+ The value.
+
+
+ Create a text node.
+ The text to use.
+ The value.
+
+
+ Creates white space.
+ The data to use.
+ The value.
+
+
+ Gets the configuration file name.
+ The configuration file name.
+
+
+ Gets the current node line number.
+ The line number for the current node.
+
+
+ Loads the configuration file.
+ The name of the file.
+
+
+ Loads a single configuration element.
+ The name of the file.
+ The source for the reader.
+
+
+ Gets the configuration file name.
+ The file name.
+
+
+ Gets the configuration line number.
+ The line number.
+
+
+ Represents a single, named connection string in the connection strings configuration file section.
+
+
+ Initializes a new instance of a class.
+
+
+ Initializes a new instance of a class.
+ The name of the connection string.
+ The connection string.
+
+
+ Initializes a new instance of a object.
+ The name of the connection string.
+ The connection string.
+ The name of the provider to use with the connection string.
+
+
+ Gets or sets the connection string.
+ The string value assigned to the property.
+
+
+ Gets or sets the name.
+ The string value assigned to the property.
+
+
+ Gets or sets the provider name property.
+ Gets or sets the property.
+
+
+ Returns a string representation of the object.
+ A string representation of the object.
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object to add to the collection.
+
+
+ Removes all the objects from the collection.
+
+
+ Returns the collection index of the passed object.
+ A object in the collection.
+ The collection index of the specified object.
+
+
+ Gets or sets the connection string at the specified index in the collection.
+ The index of a object in the collection.
+ The object at the specified index.
+
+
+ Gets or sets the object with the specified name in the collection.
+
+ The object with the specified name; otherwise, null.
+
+
+ Removes the specified object from the collection.
+ A object in the collection.
+
+
+ Removes the specified object from the collection.
+ The name of a object in the collection.
+
+
+ Removes the object at the specified index in the collection.
+ The index of a object in the collection.
+
+
+ Provides programmatic access to the connection strings configuration-file section.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a collection of objects.
+ A collection of objects.
+
+
+ Encapsulates the context information that is associated with a object. This class cannot be inherited.
+
+
+ Provides an object containing configuration-section information based on the specified section name.
+ The name of the configuration section.
+ An object containing the specified section within the configuration.
+
+
+ Gets the context of the environment where the configuration property is being evaluated.
+ An object specifying the environment where the configuration property is being evaluated.
+
+
+ Gets a value specifying whether the configuration property is being evaluated at the machine configuration level.
+ true if the configuration property is being evaluated at the machine configuration level; otherwise, false.
+
+
+ Represents a basic configuration-section handler that exposes the configuration section's XML for both read and write access.
+
+
+ Initializes a new instance of the class.
+
+
+ Specifies the default value for an application settings property.
+
+
+ Initializes an instance of the class.
+ A that represents the default value for the property.
+
+
+ Gets the default value for the application settings property.
+ A that represents the default value for the property.
+
+
+ Provides validation of an object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether an object can be validated, based on type.
+ The object type.
+ true for all types being validated.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+
+
+ Provides key/value pair configuration information from a configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ A configuration object.
+
+
+ Gets the XML attribute name to use as the key in a key/value pair.
+ A string value containing the name of the key attribute.
+
+
+ Gets the XML attribute name to use as the value in a key/value pair.
+ A string value containing the name of the value attribute.
+
+
+ Defines an interface used by the .NET Framework to initialize configuration properties.
+
+
+ Gets the configuration file name related to the application path.
+ A string value representing a configuration file name.
+
+
+ Gets the local configuration directory of the application based on the entry assembly.
+ A string representing the local configuration directory.
+
+
+ Gets the local configuration path of the application based on the entry assembly.
+ A string value representing the local configuration path of the application.
+
+
+ Gets the product name of the application based on the entry assembly.
+ A string value representing the product name of the application.
+
+
+ Gets the product version of the application based on the entry assembly.
+ A string value representing the product version of the application.
+
+
+ Gets the roaming configuration directory of the application based on the entry assembly.
+ A string value representing the roaming configuration directory of the application.
+
+
+ Gets the roaming user's configuration path based on the application's entry assembly.
+ A string value representing the roaming user's configuration path.
+
+
+ Gets the configuration path for the Machine.config file.
+ A string value representing the path of the Machine.config file.
+
+
+ Gets a value representing the configuration system's status.
+ true if the configuration system is in the process of being initialized; otherwise, false.
+
+
+ Gets a value that specifies whether user configuration settings are supported.
+ true if the configuration system supports user configuration settings; otherwise, false.
+
+
+ Gets the name of the file used to store user configuration settings.
+ A string specifying the name of the file used to store user configuration.
+
+
+ Defines interfaces that allow the internal .NET Framework infrastructure to customize configuration.
+
+
+ Returns the path to the application configuration file.
+ A string representing the path to the application configuration file.
+
+
+ Returns a string representing the path to the known local user configuration file.
+ A string representing the path to the known local user configuration file.
+
+
+ Returns a string representing the path to the known roaming user configuration file.
+ A string representing the path to the known roaming user configuration file.
+
+
+ Returns a value indicating whether a configuration file path is the same as a currently known application configuration file path.
+ A string representing the path to the application configuration file.
+ true if a string representing a configuration path is the same as a path to the application configuration file; false if a string representing a configuration path is not the same as a path to the application configuration file.
+
+
+ Returns a value indicating whether a configuration file path is the same as the configuration file path for the currently known local user.
+ A string representing the path to the application configuration file.
+ true if a string representing a configuration path is the same as a path to a known local user configuration file; otherwise, false.
+
+
+ Returns a value indicating whether a configuration file path is the same as the configuration file path for the currently known roaming user.
+ A string representing the path to an application configuration file.
+ true if a string representing a configuration path is the same as a path to a known roaming user configuration file; otherwise, false.
+
+
+ Defines the interfaces used by the internal design time API to create a object.
+
+
+ Creates and initializes a object.
+ The of the object to be created.
+ A parameter array of that contains the parameters to be applied to the created object.
+ A object.
+
+
+ Normalizes a location subpath of a path to a configuration file.
+ A string representing the path to the configuration file.
+ An instance of or null.
+ A normalized subpath string.
+
+
+ Defines interfaces used by internal .NET structures to initialize application configuration properties.
+
+
+ Creates and returns a context object for a of an application configuration.
+ A string representing the path of the application configuration file.
+ A string representing a subpath location of the configuration element.
+ A context object for a object of an application configuration.
+
+
+ Creates and returns a deprecated context object of the application configuration.
+ A string representing a path to an application configuration file.
+ A deprecated context object of the application configuration.
+
+
+ Decrypts an encrypted configuration section and returns it as a string.
+ An encrypted XML string representing a configuration section.
+ The object.
+
+ A decrypted configuration section as a string.
+
+
+ Deletes the object performing I/O tasks on the application configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+
+
+ Encrypts a configuration section and returns it as a string.
+
+ The object.
+
+ An encrypted configuration section represented as a string.
+
+
+ Returns the complete path to an application configuration file based on the location subpath.
+ A string representing the path of the application configuration file.
+
+ A string representing the complete path to an application configuration file.
+
+
+ Returns a object representing the type of the configuration object.
+ The type name
+ true to throw an exception if an error occurs; otherwise, false
+ A object representing the type of the configuration object.
+
+
+ Returns a string representing a type name from the object representing the type of the configuration.
+ A object.
+ A string representing the type name from a object representing the type of the configuration.
+
+
+ Returns a string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+ A string representing the path of the application configuration file.
+ A string representing the configuration file name associated with the I/O tasks on the configuration file.
+
+
+ Returns a string representing the configuration file name associated with the object performing I/O tasks on a remote configuration file.
+ A string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+ A string representing a path to a remote configuration file.
+ A string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+
+
+ Returns the version of the object associated with configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The version of the object associated with configuration file.
+
+
+ Instructs the host to impersonate and returns an object required by the internal .NET structure.
+ An value.
+
+
+ Initializes a configuration host.
+
+ The parameter object containing the values used for initializing the configuration host.
+
+
+ Initializes a configuration object.
+ The subpath location of the configuration file.
+ A string representing the path of the application configuration file.
+ A string representing the location of a configuration path.
+
+ The parameter object containing the values used for initializing the configuration host.
+
+
+ Returns a value indicating whether the configuration file is located at a higher level in the configuration hierarchy than the application configuration.
+ A string representing the path of the application configuration file.
+ true the configuration file is located at a higher level in the configuration hierarchy than the application configuration; otherwise, false.
+
+
+ Returns a value indicating whether a child record is required for a child configuration path.
+ A string representing the path of the application configuration file.
+ true if child record is required for a child configuration path; otherwise, false.
+
+
+ Determines if a different definition is allowable for an application configuration object.
+ A string representing the path of the application configuration file.
+ A object.
+ A object.
+ true if a different definition is allowable for an application configuration object; otherwise, false.
+
+
+ Returns a value indicating whether the file path used by a object to read a configuration file is a valid path.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true if the path used by a object to read a configuration file is a valid path; otherwise, false.
+
+
+ Returns a value indicating whether a configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands.
+ The object.
+ true if the configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands; otherwise, false.
+
+
+ Returns a value indicating whether the initialization of a configuration object is considered delayed.
+ The object.
+ true if the initialization of a configuration object is considered delayed; otherwise, false.
+
+
+ Returns a value indicating whether the configuration object supports a location tag.
+ A string representing the path of the application configuration file.
+ true if the configuration object supports a location tag; otherwise, false.
+
+
+ Returns a value indicating whether the configuration is remote.
+ true if the configuration is remote; otherwise, false.
+
+
+ Returns a value indicating whether a configuration path is to a configuration node whose contents should be treated as a root.
+ A string representing the path of the application configuration file.
+ true if the configuration path is to a configuration node whose contents should be treated as a root; otherwise, false.
+
+
+ Returns a value indicating whether the configuration path is trusted.
+ A string representing the path of the application configuration file.
+ true if the configuration path is trusted; otherwise, false.
+
+
+ Opens a to read a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object.
+
+
+ Opens a object to read a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true to assert permissions; otherwise, false.
+ Returns the object specified by streamName.
+
+
+ Opens a object for writing to a configuration file or for writing to a temporary file used to build a configuration file. Allows a object to be designated as a template for copying file attributes.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object.
+ A object.
+
+
+ Opens a object for writing to a configuration file. Allows a object to be designated as a template for copying file attributes.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The name of a from which file attributes are to be copied as a template.
+ The write context of the object performing I/O tasks on the configuration file.
+ true to assert permissions; otherwise, false.
+ Returns the object specified by streamName.
+
+
+ Returns a value indicating whether the entire configuration file could be read by a designated object.
+ A string representing the path of the application configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true if the entire configuration file could be read by the object designated by streamName; otherwise, false.
+
+
+ Instructs the object to read a designated section of its associated configuration file.
+ A string representing the identifying name of a configuration file section group.
+ A string representing the identifying name of a configuration file section.
+ true if a section of the configuration file designated by sectionGroupName and sectionName could be read by a object; otherwise, false.
+
+
+ Indicates a new configuration record requires a complete initialization.
+ An object.
+
+
+ Instructs the object to monitor an associated object for changes in a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object to receive the returned data representing the changes in the configuration file.
+ An containing changed configuration settings.
+
+
+ Instructs the object to stop monitoring an associated object for changes in a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object.
+
+
+ Returns a value indicating whether the host configuration supports change notification.
+ true if the configuration supports change notification; otherwise, false.
+
+
+ Returns a value indicating whether the host configuration supports location tags.
+ true if the configuration supports location tags; otherwise, false.
+
+
+ Returns a value indicating whether the host configuration supports path tags.
+ true if the configuration supports path tags; otherwise, false.
+
+
+ Returns a value indicating whether the host configuration supports configuration refresh.
+ true if the configuration supports configuration refresh; otherwise, false.
+
+
+ Verifies that a configuration definition is allowed for a configuration record.
+ A string representing the path of the application configuration file.
+ A object.
+ A object
+ An object.
+
+
+ Indicates that all writing to the configuration file has completed.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true if the write to the configuration file was completed successfully; otherwise, false.
+ The write context of the object performing I/O tasks on the configuration file.
+
+
+ Indicates that all writing to the configuration file has completed and specifies whether permissions should be asserted.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true to indicate the write was completed successfully; otherwise, false.
+ The write context of the object performing I/O tasks on the configuration file.
+ true to assert permissions; otherwise, false.
+
+
+ Defines interfaces used by internal .NET structures to support creation of new configuration records.
+
+
+ Gets a string representing a configuration file path.
+ A string representing a configuration file path.
+
+
+ Returns an object representing a section of a configuration from the last-known-good (LKG) configuration.
+ A string representing a key to a configuration section.
+ An instance representing the section of the last-known-good configuration specified by configKey.
+
+
+ Returns an instance representing a section of a configuration file.
+ A string representing a key to a configuration section.
+ An instance representing a section of a configuration file.
+
+
+ Returns a value indicating whether an error occurred during initialization of a configuration object.
+ true if an error occurred during initialization of a configuration object; otherwise, false.
+
+
+ Causes a specified section of the configuration object to be reinitialized.
+ A string representing a key to a configuration section that is to be refreshed.
+
+
+ Removes a configuration record.
+
+
+ Returns the name of a object performing I/O tasks on the configuration file.
+ A string representing the name of a object performing I/O tasks on the configuration file.
+
+
+ Grants the configuration object the permission to throw an exception if an error occurs during initialization.
+
+
+ Defines interfaces used by internal .NET structures to support a configuration root object.
+
+
+ Represents the method that handles the event of an object.
+
+
+
+ Represents the method that handles the event of a object.
+
+
+
+ Returns an object representing a configuration specified by a configuration path.
+ A string representing the path to a configuration file.
+ An object representing a configuration specified by configPath.
+
+
+ Returns an representing the data in a section of a configuration file.
+ A string representing a section of a configuration file.
+ A string representing the path to a configuration file.
+ An representing the data in a section of a configuration file.
+
+
+ Returns a value representing the file path of the nearest configuration ancestor that has configuration data.
+ The path of configuration file.
+ Returns a string representing the file path of the nearest configuration ancestor that has configuration data.
+
+
+ Returns an object representing a unique configuration record for given configuration path.
+ The path of the configuration file.
+ An object representing a unique configuration record for a given configuration path.
+
+
+ Initializes a configuration object.
+ An object.
+ true if design time; false if run time.
+
+
+ Returns a value indicating whether the configuration is a design-time configuration.
+ true if the configuration is a design-time configuration; false if the configuration is not a design-time configuration.
+
+
+ Finds and removes a configuration record and all its children for a given configuration path.
+ The path of the configuration file.
+
+
+ Defines an interface used by the configuration system to set the class.
+
+
+ Indicates that initialization of the configuration system has completed.
+
+
+ Provides hierarchical configuration settings and extensions specific to ASP.NET to the configuration system.
+ An object used by the class.
+ true if the initialization process of the configuration system is complete; otherwise, false.
+
+
+ Defines an interface used by the .NET Framework to initialize application configuration properties.
+
+
+ Returns the configuration object based on the specified key.
+ The configuration key value.
+ A configuration object.
+
+
+ Refreshes the configuration system based on the specified section name.
+ The name of the configuration section.
+
+
+ Gets a value indicating whether the user configuration is supported.
+ true if the user configuration is supported; otherwise, false.
+
+
+ Defines a class that allows the .NET Framework infrastructure to specify event arguments for configuration events.
+
+
+ Initializes a new instance of the class.
+ A configuration path.
+
+
+ Gets or sets the configuration path related to the object.
+ A string value specifying the configuration path.
+
+
+ Defines a class used by the .NET Framework infrastructure to support configuration events.
+ The source object of the event.
+ A configuration event argument.
+
+
+ Represents a method for hosts to call when a monitored stream has changed.
+ The name of the object performing I/O tasks on the configuration file.
+
+
+ Defines standard functionality for controls or libraries that store and retrieve application settings.
+
+
+ Reads the control's application settings into their corresponding properties and updates the control's state.
+
+
+ Resets the control's application settings properties to their default values.
+
+
+ Persists the control's application settings properties.
+
+
+ Gets or sets a value indicating whether the control should automatically persist its application settings properties.
+ true if the control should automatically persist its state; otherwise, false.
+
+
+ Gets or sets the value of the application settings key for the current instance of the control.
+ A containing the settings key for the current instance of the control.
+
+
+ Provides the configuration setting for International Resource Identifier (IRI) processing in the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the value of the configuration setting.
+ A Boolean that indicates if International Resource Identifier (IRI) processing is enabled.
+
+
+ Provides an interface for defining an alternate application settings provider.
+
+
+ Returns the settings provider compatible with the specified settings property.
+ The that requires serialization.
+ If found, the that can persist the specified settings property; otherwise, null.
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection based on the supplied parameters.
+ A .
+
+
+ Adds a object to the collection based on the supplied parameters.
+ A string specifying the key.
+ A string specifying the value.
+
+
+ Gets the keys to all items contained in the collection.
+ A string array.
+
+
+ Clears the collection.
+
+
+ When overridden in a derived class, the method creates a new object.
+ A newly created .
+
+
+ Gets the element key for a specified configuration element when overridden in a derived class.
+ The to which the key should be returned.
+ An object that acts as the key for the specified .
+
+
+ Gets the object based on the supplied parameter.
+ The key of the contained in the collection.
+ A configuration element, or null if the key does not exist in the collection.
+
+
+ Gets a collection of configuration properties.
+ A collection of configuration properties.
+
+
+ Removes a object from the collection.
+ A string specifying the key.
+
+
+ Gets a value indicating whether an attempt to add a duplicate object to the collection will cause an exception to be thrown.
+ true if an attempt to add a duplicate to the will cause an exception to be thrown; otherwise, false.
+
+
+ Represents a configuration element that contains a key/value pair.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The key of the .
+ The value of the .
+
+
+ Sets the object to its initial state.
+
+
+ Gets the key of the object.
+ The key of the .
+
+
+ Gets the collection of properties.
+ The of properties for the element.
+
+
+ Gets or sets the value of the object.
+ The value of the .
+
+
+ Provides persistence for application settings classes.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the currently running application.
+ A string that contains the application's display name.
+
+
+ Returns the value of the named settings property for the previous version of the same application.
+ A that describes where the application settings property is used.
+ The whose value is to be returned.
+ A representing the application setting if found; otherwise, null.
+
+
+ Returns the collection of setting property values for the specified application instance and settings property group.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+ A containing the values for the specified settings property group.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings.
+
+
+ Initializes the provider.
+ The friendly name of the provider.
+ A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.
+
+
+ Resets all application settings properties associated with the specified application to their default values.
+ A describing the current application usage.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings.
+
+
+ Sets the values of the specified group of property settings.
+ A describing the current application usage.
+ A representing the group of property settings to set.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings. -or- There was a general failure saving the settings to the configuration file.
+
+
+ Attempts to migrate previous user-scoped settings from a previous version of the same application.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings. -or- The previous version of the configuration file could not be accessed.
+
+
+ Provides validation of an value.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the long value.
+ An value that specifies the maximum length of the long value.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the long value.
+ An value that specifies the maximum length of the long value.
+ A value that specifies whether the validation range is exclusive.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the long value.
+ An value that specifies the maximum length of the long value.
+ A value that specifies whether the validation range is exclusive.
+ An value that specifies a specific value that must be matched.
+ resolution is equal to or less than 0. - or - maxValue is less than minValue.
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+ true if the type parameter matches an value; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Declaratively instructs the .NET Framework to perform long-integer validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range defined by the and property values.
+ true if the value must be excluded; otherwise, false. The default is false.
+
+
+ Gets or sets the maximum value allowed for the property.
+ A long integer that indicates the allowed maximum value.
+ The selected value is less than .
+
+
+ Gets or sets the minimum value allowed for the property.
+ An integer that indicates the allowed minimum value.
+ The selected value is greater than .
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+
+
+ Gets the keys to all items contained in the .
+ A string array.
+
+
+ Clears the .
+
+
+ Gets or sets the object based on the supplied parameter.
+ The name of the contained in the collection.
+ A object.
+
+
+ Removes a object from the collection based on the provided parameter.
+ A object.
+
+
+ Removes a object from the collection based on the provided parameter.
+ The name of the object.
+
+
+ A configuration element that contains a name and value. This class cannot be inherited.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ The name of the object.
+ The value of the object.
+
+
+ Gets the name of the object.
+ The name of the object.
+
+
+ Gets or sets the value of the object.
+ The value of the object.
+
+
+ Provides access to a configuration file. This type supports the .NET Framework configuration infrastructure and is not intended to be used directly from your code.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ The parent object.
+ The configuration context object.
+ The section XML node.
+ A configuration object.
+ The file specified in the file attribute of section exists but cannot be loaded. - or - The name attribute of section does not match the root element of the file specified in the file attribute.
+
+
+ Provides name/value-pair configuration information from a configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ A configuration object.
+
+
+ Gets the XML attribute name to use as the key in a key/value pair.
+ A value containing the name of the key attribute.
+
+
+ Gets the XML attribute name to use as the value in a key/value pair.
+ A value containing the name of the value attribute.
+
+
+ Specifies that a settings provider should disable any logic that gets invoked when an application upgrade is detected. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Specifies the override behavior of a configuration element for configuration elements in child directories.
+
+
+ The configuration setting of the element or group can be overridden by configuration settings that are in child directories.
+
+
+
+ The configuration setting of the element or group cannot be overridden by configuration settings that are in child directories.
+
+
+
+ The configuration setting of the element or group will be overridden by configuration settings that are in child directories if explicitly allowed by a parent element of the current configuration element or group. Permission to override is specified by using the OverrideMode attribute.
+
+
+
+ Provides validation of a object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the object type can be validated.
+ The object type.
+ true if the type parameter matches a object; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+ value is null.
+ value cannot be resolved as a positive value.
+
+
+ Declaratively instructs the .NET Framework to perform time validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Contains meta-information on an individual property within the configuration. This type cannot be inherited.
+
+
+ Gets the object related to the configuration attribute.
+ A object.
+
+
+ Gets an object containing the default value related to a configuration attribute.
+ An object containing the default value of the configuration attribute.
+
+
+ Gets the description of the object that corresponds to a configuration attribute.
+ The description of the configuration attribute.
+
+
+ Gets a value specifying whether the configuration attribute is a key.
+ true if the configuration attribute is a key; otherwise, false.
+
+
+ Gets a value specifying whether the configuration attribute is locked.
+ true if the object is locked; otherwise, false.
+
+
+ Gets a value specifying whether the configuration attribute has been modified.
+ true if the object has been modified; otherwise, false.
+
+
+ Gets a value specifying whether the configuration attribute is required.
+ true if the object is required; otherwise, false.
+
+
+ Gets the line number in the configuration file related to the configuration attribute.
+ A line number of the configuration file.
+
+
+ Gets the name of the object that corresponds to a configuration attribute.
+ The name of the object.
+
+
+ Gets the source file that corresponds to a configuration attribute.
+ The source file of the object.
+
+
+ Gets the of the object that corresponds to a configuration attribute.
+ The of the object.
+
+
+ Gets a object related to the configuration attribute.
+ A object.
+
+
+ Gets or sets an object containing the value related to a configuration attribute.
+ An object containing the value for the object.
+
+
+ Gets a object related to the configuration attribute.
+ A object.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the collection. The must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+ array is null.
+ The property of array is less than + index.
+
+
+ Gets an object, which is used to iterate through this collection.
+ An object, which is used to iterate through this .
+
+
+ Populates a object with the data needed to serialize the instance.
+ A object that contains the information required to serialize the instance.
+ A object that contains the source and destination of the serialized stream associated with the instance.
+ info is null.
+
+
+ Gets the object in the collection, based on the specified property name.
+ The name of the configuration attribute contained in the object.
+ A object.
+
+
+ Specifies the level in the configuration hierarchy where a configuration property value originated.
+
+
+ The configuration property value originates from the property.
+
+
+
+ The configuration property value is inherited from a parent level in the configuration.
+
+
+
+ The configuration property value is defined at the current level of the hierarchy.
+
+
+
+ Provides access to the protected-configuration providers for the current application's configuration file.
+
+
+ The name of the data protection provider.
+
+
+
+ Gets the name of the default protected-configuration provider.
+ The name of the default protected-configuration provider.
+
+
+ The name of the protected data section.
+
+
+
+ Gets a collection of the installed protected-configuration providers.
+ A collection of installed objects.
+
+
+ The name of the RSA provider.
+
+
+
+ Specifies that an application settings property has a common value for all users of an application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Acts as a base class for deriving concrete wrapper classes to implement the application settings feature in Window Forms applications.
+
+
+ Initializes an instance of the class to its default state.
+
+
+ Initializes an instance of the class using the supplied owner component.
+ The component that will act as the owner of the application settings object.
+ owner is null.
+
+
+ Initializes an instance of the class using the supplied settings key.
+ A that uniquely identifies separate instances of the wrapper class.
+
+
+ Initializes an instance of the class using the supplied owner component and settings key.
+ The component that will act as the owner of the application settings object.
+ A that uniquely identifies separate instances of the wrapper class.
+ owner is null.
+
+
+ Gets the application settings context associated with the settings group.
+ A associated with the settings group.
+
+
+ Returns the value of the named settings property for the previous version of the same application.
+ A containing the name of the settings property whose value is to be returned.
+ An containing the value of the specified if found; otherwise, null.
+ The property does not exist. The property count is zero or the property cannot be found in the data store.
+
+
+ Gets or sets the value of the specified application settings property.
+ A containing the name of the property to access.
+ If found, the value of the named settings property; otherwise, null.
+ There are no properties associated with the current wrapper or the specified property could not be found.
+ An attempt was made to set a read-only property.
+ The value supplied is of a type incompatible with the settings property, during a set operation.
+ The configuration file could not be parsed.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Gets the collection of settings properties in the wrapper.
+ A containing all the objects used in the current wrapper.
+ The associated settings provider could not be found or its instantiation failed.
+
+
+ Occurs after the value of an application settings property is changed.
+
+
+
+ Gets a collection of property values.
+ A of property values.
+
+
+ Gets the collection of application settings providers used by the wrapper.
+ A containing all the objects used by the settings properties of the current settings wrapper.
+
+
+ Refreshes the application settings property values from persistent storage.
+
+
+ Restores the persisted application settings values to their corresponding default properties.
+ The configuration file could not be parsed.
+
+
+ Stores the current values of the application settings properties.
+
+
+ Occurs before the value of an application settings property is changed.
+
+
+
+ Gets or sets the settings key for the application settings group.
+ A containing the settings key for the current settings group.
+
+
+ Occurs after the application settings are retrieved from storage.
+
+
+
+ Occurs before values are saved to the data store.
+
+
+
+ Updates application settings to reflect a more recent installation of the application.
+ The configuration file could not be parsed.
+
+
+ Represents a grouping of related application settings sections within a configuration file. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a method for reading values of a particular type from the configuration.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the value for a specified key from the property and returns an object of the specified type containing the value from the configuration.
+ The key for which to get the value.
+ The type of the object to return.
+ The value of the specified key.
+ key is null. - or - type is null.
+ key does not exist in the <appSettings> configuration section. - or - The value in the <appSettings> configuration section for key is not of type type.
+
+
+ Provides configuration system support for the appSettings configuration section. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a configuration file that provides additional settings or overrides the settings specified in the appSettings element.
+ A configuration file that provides additional settings or overrides the settings specified in the appSettings element.
+
+
+ Gets a collection of key/value pairs that contains application settings.
+ A collection of key/value pairs that contains the application settings from the configuration file.
+
+
+ Provides dynamic validation of an object.
+
+
+ Initializes a new instance of the class.
+ The type of object that will be validated.
+ The used as the delegate.
+ type is null.
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+ true if the type parameter matches the type used as the first parameter when creating an instance of ; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Specifies a object to use for code validation. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the callback method.
+ The name of the method to call.
+
+
+ Gets or sets the type of the validator.
+ The of the current validator attribute instance.
+
+
+ Gets the validator instance.
+ The current instance.
+ The value of the property is null.
+ The property is not set to a public static void method with one object parameter.
+
+
+ Represents a group of user-scoped application settings in a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the collection of client settings for the section.
+ A containing all the client settings found in the current configuration section.
+
+
+ Represents a collection of string elements separated by commas. This class cannot be inherited.
+
+
+ Creates a new instance of the class.
+
+
+ Adds a string to the comma-delimited collection.
+ A string value.
+
+
+ Adds all the strings in a string array to the collection.
+ An array of strings to add to the collection.
+
+
+ Clears the collection.
+
+
+ Creates a copy of the collection.
+ A copy of the .
+
+
+ Adds a string element to the collection at the specified index.
+ The index in the collection at which the new element will be added.
+ The value of the new element to add to the collection.
+
+
+ Gets a value that specifies whether the collection has been modified.
+ true if the has been modified; otherwise, false.
+
+
+ Gets a value indicating whether the collection object is read-only.
+ true if the specified string element in the is read-only; otherwise, false.
+
+
+ Gets or sets a string element in the collection based on the index.
+ The index of the string element in the collection.
+ A string element in the collection.
+
+
+ Removes a string element from the collection.
+ The string to remove.
+
+
+ Sets the collection object to read-only.
+
+
+ Returns a string representation of the object.
+ A string representation of the object.
+
+
+ Converts a comma-delimited string value to and from a object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a object to a object.
+ The used for type conversions.
+ The used during conversion.
+ The comma-separated to convert.
+ A containing the converted value.
+
+
+ Converts a object to a object.
+ The used for type conversions.
+ The used during conversion.
+ The value to convert.
+ The conversion type.
+ The representing the converted value parameter, which is a .
+
+
+ Represents a configuration file that is applicable to a particular computer, application, or resource. This class cannot be inherited.
+
+
+ Gets the object configuration section that applies to this object.
+ An object representing the appSettings configuration section that applies to this object.
+
+
+ Specifies a function delegate that is used to transform assembly strings in configuration files.
+ A delegate that transforms type strings. The default value is null.
+
+
+ Gets a configuration-section object that applies to this object.
+ A configuration-section object representing the connectionStrings configuration section that applies to this object.
+
+
+ Gets the object for the object.
+ The object for the object.
+
+
+ Gets the physical path to the configuration file represented by this object.
+ The physical path to the configuration file represented by this object.
+
+
+ Returns the specified object.
+
+ The specified object.
+
+
+ Gets the specified object.
+
+ The specified.
+
+
+ Gets a value that indicates whether a file exists for the resource represented by this object.
+ true if there is a configuration file; otherwise, false.
+
+
+ Gets the locations defined within this object.
+ A containing the locations defined within this object.
+
+
+ Gets or sets a value indicating whether the configuration file has an XML namespace.
+ true if the configuration file has an XML namespace; otherwise, false.
+
+
+ Gets the root for this object.
+ The root section group for this object.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+
+
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+
+
+ filename is null or an empty string ("").
+
+
+ Gets a collection of the section groups defined by this configuration.
+ A collection representing the collection of section groups for this object.
+
+
+ Gets a collection of the sections defined by this object.
+ A collection of the sections defined by this object.
+
+
+ Specifies the targeted version of the .NET Framework when a version earlier than the current one is targeted.
+ The name of the targeted version of the .NET Framework. The default value is null, which indicates that the current version is targeted.
+
+
+ Specifies a function delegate that is used to transform type strings in configuration files.
+ A delegate that transforms type strings. The default value is null.
+
+
+ Specifies the locations within the configuration-file hierarchy that can set or override the properties contained within a object.
+
+
+ The can be defined anywhere.
+
+
+
+ The can be defined only in the Machine.config file.
+
+
+
+ The can be defined in either the Machine.config file, the machine-level Web.config file found in the same directory as Machine.config, or the top-level application Web.config file found in the virtual-directory root, but not in subdirectories of a virtual root.
+
+
+
+ The can be defined in either the Machine.config file or the machine-level Web.config file found in the same directory as Machine.config, but not in application Web.config files.
+
+
+
+ Specifies the locations within the configuration-file hierarchy that can set or override the properties contained within a object.
+
+
+ The can be defined only in the Machine.config file.
+
+
+
+ The can be defined either in the Machine.config file or in the Exe.config file in the client application directory. This is the default value.
+
+
+
+ The can be defined in the Machine.config file, in the Exe.config file in the client application directory, in the User.config file in the roaming user directory, or in the User.config file in the local user directory.
+
+
+
+ The can be defined in the Machine.config file, in the Exe.config file in the client application directory, or in the User.config file in the roaming user directory.
+
+
+
+ Declaratively instructs the .NET Framework to create an instance of a configuration element collection. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The type of the property collection to create.
+ itemType is null.
+
+
+ Gets or sets the name of the <add> configuration element.
+ The name that substitutes the standard name "add" for the configuration item.
+
+
+ Gets or sets the name for the <clear> configuration element.
+ The name that replaces the standard name "clear" for the configuration item.
+
+
+ Gets or sets the type of the attribute.
+ The type of the .
+
+
+ Gets the type of the collection element.
+ The type of the collection element.
+
+
+ Gets or sets the name for the <remove> configuration element.
+ The name that replaces the standard name "remove" for the configuration element.
+
+
+ The base class for the configuration converter types.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the conversion is allowed.
+ The object used for type conversions.
+ The to convert from.
+ true if the conversion is allowed; otherwise, false.
+
+
+ Determines whether the conversion is allowed.
+ The object used for type conversion.
+ The type to convert to.
+ true if the conversion is allowed; otherwise, false.
+
+
+ Represents a configuration element within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a reference to the top-level instance that represents the configuration hierarchy that the current instance belongs to.
+ The top-level instance that the current instance belongs to.
+
+
+ Reads XML from the configuration file.
+ The that reads from the configuration file.
+ true to serialize only the collection key properties; otherwise, false.
+ The element to read is locked. - or - An attribute of the current node is not recognized. - or - The lock status of the current node cannot be determined.
+
+
+ Gets an object that contains the non-customizable information and functionality of the object.
+ An that contains the non-customizable information and functionality of the .
+
+
+ Gets the object that represents the object itself.
+ The that represents the itself.
+
+
+ Compares the current instance to the specified object.
+ The object to compare with.
+ true if the object to compare with is equal to the current instance; otherwise, false. The default is false.
+
+
+ Gets the object for the object.
+ The for the .
+ The current element is not associated with a context.
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Returns the transformed version of the specified assembly name.
+ The name of the assembly.
+ The transformed version of the assembly name. If no transformer is available, the assemblyName parameter value is returned unchanged. The property is null if no transformer is available.
+
+
+ Returns the transformed version of the specified type name.
+ The name of the type.
+ The transformed version of the specified type name. If no transformer is available, the typeName parameter value is returned unchanged. The property is null if no transformer is available.
+
+
+ Gets a value that indicates whether the property is null.
+ false if the property is null; otherwise, true.
+
+
+ Sets the object to its initial state.
+
+
+ Used to initialize a default set of values for the object.
+
+
+ Indicates whether this configuration element has been modified since it was last saved or loaded, when implemented in a derived class.
+ true if the element has been modified; otherwise, false.
+
+
+ Gets a value indicating whether the object is read-only.
+ true if the object is read-only; otherwise, false.
+
+
+ Gets or sets a property or attribute of this configuration element.
+
+ The specified property, attribute, or child element.
+ property is null or does not exist within the element.
+ property is read only or locked.
+
+
+ Gets or sets a property, attribute, or child element of this configuration element.
+
+ The specified property, attribute, or child element
+ prop is read-only or locked.
+
+
+ Adds the invalid-property errors in this object, and in all subelements, to the passed list.
+
+
+
+ Gets the collection of locked attributes.
+ The of locked attributes (properties) for the element.
+
+
+ Gets the collection of locked elements.
+ The of locked elements.
+
+
+ Gets the collection of locked attributes
+ The of locked attributes (properties) for the element.
+
+
+ Gets the collection of locked elements.
+ The of locked elements.
+
+
+ Gets or sets a value indicating whether the element is locked.
+ true if the element is locked; otherwise, false. The default is false.
+ The element has already been locked at a higher configuration level.
+
+
+ Gets a value indicating whether an unknown attribute is encountered during deserialization.
+ The name of the unrecognized attribute.
+ The value of the unrecognized attribute.
+ true when an unknown attribute is encountered while deserializing; otherwise, false.
+
+
+ Gets a value indicating whether an unknown element is encountered during deserialization.
+
+ The being used for deserialization.
+ true when an unknown element is encountered while deserializing; otherwise, false.
+ The element identified by elementName is locked. - or - One or more of the element's attributes is locked. - or - elementName is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element.
+
+
+ Throws an exception when a required property is not found.
+ The name of the required attribute that was not found.
+ None.
+ In all cases.
+
+
+ Called after deserialization.
+
+
+ Called before serialization.
+ The that will be used to serialize the .
+
+
+ Gets the collection of properties.
+ The of properties for the element.
+
+
+ Resets the internal state of the object, including the locks and the properties collections.
+ The parent node of the configuration element.
+
+
+ Resets the value of the method to false when implemented in a derived class.
+
+
+ Writes the contents of this configuration element to the configuration file when implemented in a derived class.
+ The that writes to the configuration file.
+ true to serialize only the collection key properties; otherwise, false.
+ true if any data was actually serialized; otherwise, false.
+ The current attribute is locked at a higher configuration level.
+
+
+ Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.
+ The that writes to the configuration file.
+ The name of the to be written.
+ true if writing was successful; otherwise, false.
+ The element has multiple child elements.
+
+
+ Sets a property to the specified value.
+ The element property to set.
+ The value to assign to the property.
+ true if the locks on the property should be ignored; otherwise, false.
+ Occurs if the element is read-only or ignoreLocks is true but the locks cannot be ignored.
+
+
+ Sets the property for the object and all subelements.
+
+
+ Modifies the object to remove all values that should not be saved.
+
+
+
+
+
+ Represents a configuration element containing a collection of child elements.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ The comparer to use.
+ comparer is null.
+
+
+ Gets or sets the name of the to associate with the add operation in the when overridden in a derived class.
+ The name of the element.
+ The selected value starts with the reserved prefix "config" or "lock".
+
+
+ Adds a configuration element to the .
+ The to add.
+
+
+ Adds a configuration element to the configuration element collection.
+ The to add.
+ true to throw an exception if the specified is already contained in the ; otherwise, false.
+ The to add already exists in the and the throwIfExists parameter is true.
+
+
+ Adds a configuration element to the configuration element collection.
+ The index location at which to add the specified .
+ The to add.
+
+
+ Removes all configuration element objects from the collection.
+ The configuration is read-only. - or - A collection item has been locked in a higher-level configuration.
+
+
+ Gets the configuration element at the specified index location.
+ The index location of the to return.
+ The at the specified index.
+ index is less than 0. - or - There is no at the specified index.
+
+
+ Returns the configuration element with the specified key.
+ The key of the element to return.
+ The with the specified key; otherwise, null.
+
+
+ Returns an array of the keys for all of the configuration elements contained in the .
+ An array that contains the keys for all of the objects contained in the .
+
+
+ Gets the key for the at the specified index location.
+ The index location for the .
+ The key for the specified .
+ index is less than 0. - or - There is no at the specified index.
+
+
+ Indicates the index of the specified .
+ The for the specified index location.
+ The index of the specified ; otherwise, -1.
+
+
+ Indicates whether the with the specified key has been removed from the .
+ The key of the element to check.
+ true if the with the specified key has been removed; otherwise, false. The default is false.
+
+
+ Removes a from the collection.
+ The key of the to remove.
+ No with the specified key exists in the collection, the element has already been removed, or the element cannot be removed because the value of its is not .
+
+
+ Removes the at the specified index location.
+ The index location of the to remove.
+ The configuration is read-only. - or - index is less than 0 or greater than the number of objects in the collection. - or - The object has already been removed. - or - The value of the object has been locked at a higher level. - or - The object was inherited. - or - The value of the object's is not or .
+
+
+ Gets or sets the name for the to associate with the clear operation in the when overridden in a derived class.
+ The name of the element.
+ The selected value starts with the reserved prefix "config" or "lock".
+
+
+ Gets the type of the .
+ The of this collection.
+
+
+ Copies the contents of the to an array.
+ Array to which to copy the contents of the .
+ Index location at which to begin copying.
+
+
+ Gets the number of elements in the collection.
+ The number of elements in the collection.
+
+
+ Creates a new when overridden in a derived class.
+ The name of the to create.
+ A new with a specified name.
+
+
+ When overridden in a derived class, creates a new .
+ A newly created .
+
+
+ Gets the name used to identify this collection of elements in the configuration file when overridden in a derived class.
+ The name of the collection; otherwise, an empty string. The default is an empty string.
+
+
+ Gets or sets a value that specifies whether the collection has been cleared.
+ true if the collection has been cleared; otherwise, false. The default is false.
+ The configuration is read-only.
+
+
+ Compares the to the specified object.
+ The object to compare.
+ true if the object to compare with is equal to the current instance; otherwise, false. The default is false.
+
+
+ Gets the element key for a specified configuration element when overridden in a derived class.
+ The to return the key for.
+ An that acts as the key for the specified .
+
+
+ Gets an which is used to iterate through the .
+ An which is used to iterate through the .
+
+
+ Gets a unique value representing the instance.
+ A unique value representing the current instance.
+
+
+ Indicates whether the specified exists in the .
+ The name of the element to verify.
+ true if the element exists in the collection; otherwise, false. The default is false.
+
+
+ Indicates whether the specified can be removed from the .
+ The element to check.
+ true if the specified can be removed from this ; otherwise, false. The default is true.
+
+
+ Indicates whether this has been modified since it was last saved or loaded when overridden in a derived class.
+ true if any contained element has been modified; otherwise, false
+
+
+ Indicates whether the object is read only.
+ true if the object is read only; otherwise, false.
+
+
+ Gets a value indicating whether access to the collection is synchronized.
+ true if access to the is synchronized; otherwise, false.
+
+
+ Causes the configuration system to throw an exception.
+ The name of the unrecognized element.
+ An input stream that reads XML from the configuration file.
+ true if the unrecognized element was deserialized successfully; otherwise, false. The default is false.
+ The element specified in elementName is the <clear> element.
+ elementName starts with the reserved prefix "config" or "lock".
+
+
+ Gets or sets the name of the to associate with the remove operation in the when overridden in a derived class.
+ The name of the element.
+ The selected value starts with the reserved prefix "config" or "lock".
+
+
+ Resets the to its unmodified state when overridden in a derived class.
+ The representing the collection parent element, if any; otherwise, null.
+
+
+ Resets the value of the property to false when overridden in a derived class.
+
+
+ Writes the configuration data to an XML element in the configuration file when overridden in a derived class.
+ Output stream that writes XML to the configuration file.
+ true to serialize the collection key; otherwise, false.
+ true if the was written to the configuration file successfully.
+ One of the elements in the collection was added or replaced and starts with the reserved prefix "config" or "lock".
+
+
+ Sets the property for the object and for all sub-elements.
+
+
+ Gets an object used to synchronize access to the .
+ An object used to synchronize access to the .
+
+
+ Gets a value indicating whether an attempt to add a duplicate to the will cause an exception to be thrown.
+ true if an attempt to add a duplicate to this will cause an exception to be thrown; otherwise, false.
+
+
+ Reverses the effect of merging configuration information from different levels of the configuration hierarchy
+ A object at the current level containing a merged view of the properties.
+ The parent object of the current element, or null if this is the top level.
+
+
+
+ Copies the to an array.
+ Array to which to copy this .
+ Index location at which to begin copying.
+
+
+ Specifies the type of a object.
+
+
+ The default type of . Collections of this type contain elements that can be merged across a hierarchy of configuration files. At any particular level within such a hierarchy, add, remove, and clear directives are used to modify any inherited properties and specify new ones.
+
+
+
+ Same as , except that this type causes the object to sort its contents such that inherited elements are listed last.
+
+
+
+ Collections of this type contain elements that apply to the level at which they are specified, and to all child levels. A child level cannot modify the properties specified by a parent element of this type.
+
+
+
+ Same as , except that this type causes the object to sort its contents such that inherited elements are listed last.
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/ref/netstandard2.0/System.Configuration.ConfigurationManager.dll b/packages/System.Configuration.ConfigurationManager.4.4.1/ref/netstandard2.0/System.Configuration.ConfigurationManager.dll
new file mode 100644
index 0000000..e0ab375
Binary files /dev/null and b/packages/System.Configuration.ConfigurationManager.4.4.1/ref/netstandard2.0/System.Configuration.ConfigurationManager.dll differ
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/ref/netstandard2.0/System.Configuration.ConfigurationManager.xml b/packages/System.Configuration.ConfigurationManager.4.4.1/ref/netstandard2.0/System.Configuration.ConfigurationManager.xml
new file mode 100644
index 0000000..fdf8ae3
--- /dev/null
+++ b/packages/System.Configuration.ConfigurationManager.4.4.1/ref/netstandard2.0/System.Configuration.ConfigurationManager.xml
@@ -0,0 +1,4888 @@
+
+
+
+ System.Configuration.ConfigurationManager
+
+
+
+ Provides a object that uses the Windows data protection API (DPAPI) to encrypt and decrypt configuration data.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Decrypts the passed object.
+
+ A decrypted object.
+ encrypted_node does not have set to "EncryptedData" and set to . - or - encrypted_node does not have a child node named "CipherData" with a child node named "CipherValue". - or - The child node named "CipherData" is an empty node.
+
+
+ Encrypts the passed object.
+ The object to encrypt.
+ An encrypted object.
+
+
+ Initializes the provider with default settings.
+ The provider name to use for the object.
+ A collection of values to use when initializing the object.
+ configurationValues contains an unrecognized configuration setting.
+
+
+ Gets a value that indicates whether the object is using machine-specific or user-account-specific protection.
+ true if the is using machine-specific protection; false if it is using user-account-specific protection.
+
+
+ Contains meta-information about an individual element within the configuration. This class cannot be inherited.
+
+
+ Gets the errors for the associated element and subelements
+ The collection containing the errors for the associated element and subelements
+
+
+ Gets a value indicating whether the associated object is a collection.
+ true if the associated object is a collection; otherwise, false.
+
+
+ Gets a value that indicates whether the associated object cannot be modified.
+ true if the associated object cannot be modified; otherwise, false.
+
+
+ Gets a value indicating whether the associated object is in the configuration file.
+ true if the associated object is in the configuration file; otherwise, false.
+
+
+ Gets the line number in the configuration file where the associated object is defined.
+ The line number in the configuration file where the associated object is defined.
+
+
+ Gets a collection of the properties in the associated object.
+ A collection of the properties in the associated object.
+
+
+ Gets the source file where the associated object originated.
+ The source file where the associated object originated.
+
+
+ Gets the type of the associated object.
+ The type of the associated object.
+
+
+ Gets the object used to validate the associated object.
+ The object used to validate the associated object.
+
+
+ Defines the configuration file mapping for an .exe application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified machine configuration file name.
+ The name of the machine configuration file that includes the complete physical path (for example, c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config).
+
+
+ Creates a copy of the existing object.
+ An object.
+
+
+ Gets or sets the name of the configuration file.
+ The configuration file name.
+
+
+ Gets or sets the name of the configuration file for the local user.
+ The configuration file name.
+
+
+ Gets or sets the name of the configuration file for the roaming user.
+ The configuration file name.
+
+
+ Manages the path context for the current application. This class cannot be inherited.
+
+
+ Gets the current path for the application.
+ A string value containing the current path.
+
+
+ Gets an object representing the path level of the current application.
+ A object representing the path level of the current application.
+
+
+ Converts between a string and an enumeration type.
+
+
+ Initializes a new instance of the class.
+ The enumeration type to convert.
+ typeEnum is null.
+
+
+ Converts a to an type.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The type that represents the data parameter.
+ data is null or an empty string (""). - or - data starts with a numeric character. - or - data includes white space.
+
+
+ Converts an type to a value.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the value parameter.
+
+
+ Defines extended capabilities for client-based application settings providers.
+
+
+ Returns the value of the specified settings property for the previous version of the same application.
+ A describing the current application usage.
+ The whose value is to be returned.
+ A containing the value of the specified property setting as it was last set in the previous version of the application; or null if the setting cannot be found.
+
+
+ Resets the application settings associated with the specified application to their default values.
+ A describing the current application usage.
+
+
+ Indicates to the provider that the application has been upgraded. This offers the provider an opportunity to upgrade its stored settings as appropriate.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+
+
+ Handles the access to certain configuration sections.
+
+
+ Creates a configuration section handler.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ The created section handler object.
+
+
+ Provides standard configuration methods.
+
+
+ Gets the specified configuration.
+ The configuration key.
+ The object representing the configuration.
+
+
+ Used for initialization.
+
+
+ Provides the configuration setting for International Domain Name (IDN) processing in the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the value of the configuration setting.
+ A that contains the current configuration setting for IDN processing.
+
+
+ Provides a wrapper type definition for configuration sections that are not handled by the types.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a legacy section-handler definition for configuration sections that are not handled by the types.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds the specified configuration object to the section-handler collection.
+ The configuration settings in a corresponding parent configuration section.
+ The virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.
+ An that contains the configuration information to be handled. Provides direct access to the XML contents of the configuration section.
+ The created configuration handler object.
+
+
+ Converts between a string and the standard infinite or integer value.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to an .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The , if the data parameter is the "infinite"; otherwise, the representing the data parameter integer value.
+
+
+ Converts an .to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The "infinite" if the value is ; otherwise, the representing the value parameter.
+
+
+ Converts between a string and the standard infinite value.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The , if the data parameter is the infinite; otherwise, the representing the data parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The used during object conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the value parameter is ; otherwise, the representing the value parameter in minutes.
+
+
+ Provides validation of an value.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum value.
+ An object that specifies the maximum value.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum value.
+ An object that specifies the maximum value.
+ true to specify that the validation range is exclusive. Inclusive means the value to be validated must be within the specified range; exclusive means that it must be below the minimum or above the maximum.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum length of the integer value.
+ An object that specifies the maximum length of the integer value.
+ A value that specifies whether the validation range is exclusive.
+ An object that specifies a value that must be matched.
+ resolution is less than 0. - or - minValue is greater than maxValue.
+
+
+ Determines whether the type of the object can be validated.
+ The type of the object.
+ true if the type parameter matches an value; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value to be validated.
+
+
+ Declaratively instructs the .NET Framework to perform integer validation on a configuration property. This class cannot be inherited.
+
+
+ Creates a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range defined by the and property values.
+ true if the value must be excluded; otherwise, false. The default is false.
+
+
+ Gets or sets the maximum value allowed for the property.
+ An integer that indicates the allowed maximum value.
+ The selected value is less than .
+
+
+ Gets or sets the minimum value allowed for the property.
+ An integer that indicates the allowed minimum value.
+ The selected value is greater than .
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Delegates all members of the interface to another instance of a host.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration context.
+ A string representing the path to a configuration file.
+ A string representing a location subpath.
+ A representing a new configuration context.
+
+
+ Creates a deprecated configuration context.
+ A string representing the path to a configuration file.
+ A representing a deprecated configuration context.
+
+
+ Decrypts an encrypted configuration section.
+ An encrypted section of a configuration file.
+ A object.
+
+ A string representing a decrypted configuration section.
+
+
+ Deletes the object performing I/O tasks on a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+
+
+ Encrypts a section of a configuration object.
+
+ A object.
+
+ A string representing an encrypted section of the configuration object.
+
+
+ Returns a configuration path based on a location subpath.
+ A string representing the path to a configuration file.
+
+ A string representing a configuration path.
+
+
+ Returns a representing the type of the configuration.
+ A string representing the configuration type.
+ true if an exception should be thrown if an error is encountered; false if an exception should not be thrown if an error is encountered.
+ A representing the type of the configuration.
+
+
+ Returns a string representing the type name of the configuration object.
+ A object.
+ A string representing the type name of the configuration object.
+
+
+ Returns the name of a object performing I/O tasks on a configuration file.
+ A string representing the path to a configuration file.
+ A string representing the name of a object performing I/O tasks on a configuration file.
+
+
+ Returns the name of a object performing I/O tasks on a configuration source.
+ The name of a object performing I/O tasks on a configuration file.
+ A string representing the configuration source.
+ A string representing the name of a object performing I/O tasks on a configuration source.
+
+
+ Returns a object representing the version of a object performing I/O tasks on a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object representing the version of a object performing I/O tasks on a configuration file.
+
+
+ Gets or sets the object.
+ A object.
+
+
+ Instructs the host to impersonate and returns an object required internally by the .NET Framework.
+ An value.
+
+
+ Initializes the configuration host.
+
+ A parameter object containing the values used for initializing the configuration host.
+
+
+ Initializes the host for configuration.
+ A string representing a location subpath (passed by reference).
+ A string representing the path to a configuration file.
+ The location configuration path.
+
+ A parameter object representing the parameters used to initialize the host.
+
+
+ Returns a value indicating whether the configuration is above the application configuration in the configuration hierarchy.
+ A string representing the path to a configuration file.
+ true if the configuration is above the application configuration in the configuration hierarchy; otherwise, false.
+
+
+ Returns a value indicating whether a configuration record is required for the host configuration initialization.
+ A string representing the path to a configuration file.
+ true if a configuration record is required for the host configuration initialization; otherwise, false.
+
+
+ Restricts or allows definitions in the host configuration.
+ A string representing the path to a configuration file.
+ The object.
+ The object.
+ true if the grant or restriction of definitions in the host configuration was successful; otherwise, false.
+
+
+ Returns a value indicating whether the file path used by a object to read a configuration file is a valid path.
+ The name of a object performing I/O tasks on a configuration file.
+ true if the path used by a object to read a configuration file is a valid path; otherwise, false.
+
+
+ Returns a value indicating whether a configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands.
+ The object.
+ true if the configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands; otherwise, false.
+
+
+ Returns a value indicating whether the initialization of a configuration object is considered delayed.
+ The object.
+ true if the initialization of a configuration object is considered delayed; otherwise, false.
+
+
+ Returns a value indicating whether the configuration object supports a location tag.
+ A string representing the path to a configuration file.
+ true if the configuration object supports a location tag; otherwise, false.
+
+
+ Gets a value indicating whether the configuration is remote.
+ true if the configuration is remote; otherwise, false.
+
+
+ Returns a value indicating whether a configuration path is to a configuration node whose contents should be treated as a root.
+ A string representing the path to a configuration file.
+ true if the configuration path is to a configuration node whose contents should be treated as a root; otherwise, false.
+
+
+ Returns a value indicating whether the configuration path is trusted.
+ A string representing the path to a configuration file.
+ true if the configuration path is trusted; otherwise, false.
+
+
+ Opens a object to read a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ Returns the object specified by streamName.
+
+
+ Opens a object to read a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ true to assert permissions; otherwise, false.
+ Returns the object specified by streamName.
+
+
+ Opens a object for writing to a configuration file or for writing to a temporary file used to build a configuration file. Allows a object to be designated as a template for copying file attributes.
+ The name of a object performing I/O tasks on a configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object (passed by reference).
+ A object.
+
+
+ Opens a object for writing to a configuration file. Allows a object to be designated as a template for copying file attributes.
+ The name of a object performing I/O tasks on a configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object performing I/O tasks on the configuration file (passed by reference).
+ true to assert permissions; otherwise, false.
+ Returns the object specified by the streamName parameter.
+
+
+ Returns a value indicating whether the entire configuration file could be read by a designated object.
+ A string representing the path to a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ true if the entire configuration file could be read by the object designated by streamName; otherwise, false.
+
+
+ Instructs the object to read a designated section of its associated configuration file.
+ A string representing the name of a section group in the configuration file.
+ A string representing the name of a section in the configuration file.
+ true if a section of the configuration file designated by the sectionGroupName and sectionName parameters can be read by a object; otherwise, false.
+
+
+ Indicates that a new configuration record requires a complete initialization.
+ An object.
+
+
+ Instructs the host to monitor an associated object for changes in a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object to receive the returned data representing the changes in the configuration file.
+ An instance containing changed configuration settings.
+
+
+ Instructs the host object to stop monitoring an associated object for changes in a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object.
+
+
+ Gets a value indicating whether the host configuration supports change notifications.
+ true if the host supports change notifications; otherwise, false.
+
+
+ Gets a value indicating whether the host configuration supports location tags.
+ true if the host supports location tags; otherwise, false.
+
+
+ Gets a value indicating whether the host configuration has path support.
+ true if the host configuration has path support; otherwise, false.
+
+
+ Gets a value indicating whether the host configuration supports refresh.
+ true if the host configuration supports refresh; otherwise, false.
+
+
+ Verifies that a configuration definition is allowed for a configuration record.
+ A string representing the path to a configuration file.
+ An object.
+ A object
+ An object.
+
+
+ Indicates that all writing to the configuration file has completed.
+ The name of a object performing I/O tasks on a configuration file.
+ true if writing to the configuration file completed successfully; otherwise, false.
+ The write context of the object performing I/O tasks on the configuration file.
+
+
+ Indicates that all writing to the configuration file has completed and specifies whether permissions should be asserted.
+ The name of a object performing I/O tasks on a configuration file.
+ true to indicate that writing was completed successfully; otherwise, false.
+ The write context of the object performing I/O tasks on the configuration file.
+ true to assert permissions; otherwise, false.
+
+
+ Defines an interface used by the .NET Framework to support creating error configuration records.
+
+
+ Gets a string specifying the file name related to the configuration details.
+ A string specifying a filename.
+
+
+ Gets an integer specifying the line number related to the configuration details.
+ An integer specifying a line number.
+
+
+ Defines an interface used by the .NET Framework to support the initialization of configuration properties.
+
+
+ Gets the configuration host.
+ An object that is used by the .NET Framework to initialize application configuration properties.
+
+
+ Initializes a configuration object.
+ The type of configuration host.
+ An array of configuration host parameters.
+
+
+ Gets the root of the configuration hierarchy.
+ An object.
+
+
+ Defines an interface used by the .NET Framework to support configuration management.
+
+
+ Ensures that the networking configuration is loaded.
+
+
+ Provides the possible values for the configuration setting of the in the namespace.
+
+
+ This value will convert any Unicode domain names to their Punycode equivalents (IDN names).
+
+
+
+ This value will convert all external Unicode domain names to use the Punycode equivalents (IDN names). In this case to handle international names on the local Intranet, the DNS servers that are used for the Intranet should support Unicode names.
+
+
+
+ This value will not convert any Unicode domain names to use Punycode. This is the default value which is consistent with the .NET Framework 2.0 behavior.
+
+
+
+ Is the base class to create providers for encrypting and decrypting protected-configuration data.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Decrypts the passed object from a configuration file.
+
+ The object containing decrypted data.
+
+
+ Encrypts the passed object from a configuration file.
+ The object to encrypt.
+ The object containing encrypted data.
+
+
+ Provides a collection of objects.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Adds a object to the collection.
+ A object to add to the collection.
+ provider is null.
+ provider is not a object.
+ The object to add already exists in the collection. - or - The collection is read-only.
+
+
+ Gets a object in the collection with the specified name.
+ The name of a object in the collection.
+ The object with the specified name, or null if there is no object with that name.
+
+
+ Provides programmatic access to the configProtectedData configuration section. This class cannot be inherited.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Gets or sets the name of the default object in the collection property.
+ The name of the default object in the collection property.
+
+
+ Gets a collection of all the objects in all participating configuration files.
+ A collection of all the objects in all participating configuration files.
+
+
+ Represents a group of configuration elements that configure the providers for the <configProtectedData> configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a collection that represents the properties of the providers for the protected configuration data.
+ A that represents the properties of the providers for the protected configuration data.
+
+
+ Gets a collection of objects that represent the properties of the providers for the protected configuration data.
+ A collection of objects that represent the properties of the providers for the protected configuration data.
+
+
+ Provides a base implementation for the extensible provider model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).
+ A brief, friendly description suitable for display in administrative tools or other UIs.
+
+
+ Initializes the configuration builder.
+ The friendly name of the provider.
+ A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.
+ The name of the provider is null.
+ The name of the provider has a length of zero.
+ An attempt is made to call on a provider after the provider has already been initialized.
+
+
+ Gets the friendly name used to refer to the provider during configuration.
+ The friendly name used to refer to the provider during configuration.
+
+
+ Represents a collection of provider objects that inherit from .
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a provider to the collection.
+ The provider to be added.
+ The collection is read-only.
+ provider is null.
+ The of provider is null. - or - The length of the of provider is less than 1.
+
+
+ Removes all items from the collection.
+ The collection is set to read-only.
+
+
+ Copies the contents of the collection to the given array starting at the specified index.
+ The array to copy the elements of the collection to.
+ The index of the collection item at which to start the copying process.
+
+
+ Gets the number of providers in the collection.
+ The number of providers in the collection.
+
+
+ Returns an object that implements the interface to iterate through the collection.
+ An object that implements to iterate through the collection.
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread safe).
+ false in all cases.
+
+
+ Gets the provider with the specified name.
+ The key by which the provider is identified.
+ The provider with the specified name.
+
+
+ Removes a provider from the collection.
+ The name of the provider to be removed.
+ The collection has been set to read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Gets the current object.
+ The current object.
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+ The array to copy the elements of the collection to.
+ The index of the array at which to start copying provider instances from the collection.
+
+
+ The exception that is thrown when a configuration provider error has occurred. This exception class is also used by providers to throw exceptions when internal errors occur within the provider that do not map to other pre-existing exception classes.
+
+
+ Creates a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A message describing why this was thrown.
+
+
+ Creates a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+
+
+ Creates a new instance of the class.
+ A message describing why this was thrown.
+ The exception that caused this to be thrown.
+
+
+ Represents the configuration elements associated with a provider.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The name of the provider to configure settings for.
+ The type of the provider to configure settings for.
+
+
+ Gets or sets the name of the provider configured by this class.
+ The name of the provider.
+
+
+ Gets a collection of user-defined parameters for the provider.
+ A of parameters for the provider.
+
+
+ Gets or sets the type of the provider configured by this class.
+ The fully qualified namespace and class name for the type of provider configured by this instance.
+
+
+ Represents a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ The object to add.
+
+
+ Clears the collection.
+
+
+ Gets or sets a value at the specified index in the collection.
+
+ The specified .
+
+
+ Gets an item from the collection.
+ A string reference to the object within the collection.
+ A object contained in the collection.
+
+
+ Removes an element from the collection.
+
+
+
+ Provides validation of a string based on the rules provided by a regular expression.
+
+
+ Initializes a new instance of the class.
+ A string that specifies a regular expression.
+ regex is null or an empty string ("").
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+ true if the type parameter matches a string; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+ value does not conform to the parameters of the class.
+
+
+ Declaratively instructs the .NET Framework to perform string validation on a configuration property using a regular expression. This class cannot be inherited.
+
+
+ Initializes a new instance of the object.
+ The string to use for regular expression validation.
+
+
+ Gets the string used to perform regular-expression validation.
+ The string containing the regular expression used to filter the string assigned to the decorated configuration-element property.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Provides a instance that uses RSA encryption to encrypt and decrypt configuration data.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a key to the RSA key container.
+ The size of the key to add.
+ true to indicate that the key is exportable; otherwise, false.
+
+
+ Gets the name of the Windows cryptography API (crypto API) cryptographic service provider (CSP).
+ The name of the CryptoAPI cryptographic service provider.
+
+
+ Decrypts the XML node passed to it.
+
+ The decrypted XML node.
+
+
+ Removes a key from the RSA key container.
+
+
+ Encrypts the XML node passed to it.
+ The to encrypt.
+ An encrypted object.
+
+
+ Exports an RSA key from the key container.
+ The file name and path to export the key to.
+ true to indicate that private parameters are exported; otherwise, false.
+ path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by .
+ path is null.
+ The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.
+ The specified path is invalid, such as being on an unmapped drive.
+ An error occurred while opening the file.
+ path specified a file that is read-only. -or- This operation is not supported on the current platform. -or- path specified a directory. -or- The caller does not have the required permission.
+ The file specified in path was not found.
+ path is in an invalid format.
+ The caller does not have the required permission.
+
+
+ Imports an RSA key into the key container.
+ The file name and path to import the key from.
+ true to indicate that the key is exportable; otherwise, false.
+ path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by .
+ path is null.
+ The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.
+ The specified path is invalid, such as being on an unmapped drive.
+ An error occurred while opening the file.
+ path specified a file that is write-only. -or- This operation is not supported on the current platform. -or- path specified a directory. -or- The caller does not have the required permission.
+ The file specified in path was not found.
+ path is in an invalid format.
+
+
+ Initializes the provider with default settings.
+ The provider name to use for the object.
+ A collection of values to use when initializing the object.
+ configurationValues includes one or more unrecognized values.
+
+
+ Gets the name of the key container.
+ The name of the key container.
+
+
+ Gets the public key used by the provider.
+ An object that contains the public key used by the provider.
+
+
+ Gets a value indicating whether the provider uses FIPS.
+ true if the provider uses FIPS; otherwise, false.
+
+
+ Gets a value that indicates whether the object is using the machine key container.
+ true if the object is using the machine key container; otherwise, false.
+
+
+ Gets a value that indicates whether the provider is using Optimal Asymmetric Encryption Padding (OAEP) key exchange data.
+ true if the object is using Optimal Asymmetric Encryption Padding (OAEP) key exchange data; otherwise, false.
+
+
+ Represents an element in a class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the value of the GenericUriParserOptions entry from a instance.
+ The value of GenericUriParserOptions entry.
+
+
+ Gets the value of the Name entry from a instance.
+ The protocol used by this schema setting.
+
+
+ Represents a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the default collection type of .
+ The default collection type of .
+
+
+ The index of the specified .
+ The for the specified index location.
+ The index of the specified ; otherwise, -1.
+
+
+ Gets an item at the specified index in the collection.
+ The index of the to return.
+ The specified .
+ The index parameter is less than zero. -or- The item specified by the parameter is null or has been removed.
+
+
+ Gets an item from the collection.
+ A string reference to the object within the collection.
+ A object contained in the collection.
+
+
+ Contains metadata about an individual section within the configuration hierarchy. This class cannot be inherited.
+
+
+ Gets or sets a value that indicates where in the configuration file hierarchy the associated configuration section can be defined.
+ A value that indicates where in the configuration file hierarchy the associated object can be declared.
+ The selected value conflicts with a value that is already defined.
+
+
+ Gets or sets a value that indicates where in the configuration file hierarchy the associated configuration section can be declared.
+ A value that indicates where in the configuration file hierarchy the associated object can be declared for .exe files.
+ The selected value conflicts with a value that is already defined.
+
+
+ Gets or sets a value that indicates whether the configuration section allows the location attribute.
+ true if the location attribute is allowed; otherwise, false. The default is true.
+ The selected value conflicts with a value that is already defined.
+
+
+ Gets or sets a value that indicates whether the associated configuration section can be overridden by lower-level configuration files.
+ true if the section can be overridden; otherwise, false. The default is false.
+
+
+ Gets or sets the name of the include file in which the associated configuration section is defined, if such a file exists.
+ The name of the include file in which the associated is defined, if such a file exists; otherwise, an empty string ("").
+
+
+ Forces the associated configuration section to appear in the configuration file.
+
+
+ Forces the associated configuration section to appear in the configuration file, or removes an existing section from the configuration file.
+
+ require is true and the associated section cannot be exported to the child configuration file, or it is undeclared.
+
+
+ Gets or sets a value that indicates whether the associated configuration section will be saved even if it has not been modified.
+ true
if the associated object will be saved even if it has not been modified; otherwise, false
. The default is false
.
+
If the configuration file is saved (even if there are no modifications), ASP.NET restarts the application.
+
+
+
+
+ Gets the configuration section that contains the configuration section associated with this object.
+ The configuration section that contains the that is associated with this object.
+ The method is invoked from a parent section.
+
+
+ Returns an XML node object that represents the associated configuration-section object.
+ The XML representation for this configuration section.
+ This configuration object is locked and cannot be edited.
+
+
+ Gets or sets a value that indicates whether the settings that are specified in the associated configuration section are inherited by applications that reside in a subdirectory of the relevant application.
+ true if the settings specified in this object are inherited by child applications; otherwise, false. The default is true.
+
+
+ Gets a value that indicates whether the configuration section must be declared in the configuration file.
+ true if the associated object must be declared in the configuration file; otherwise, false.
+
+
+ Gets a value that indicates whether the associated configuration section is declared in the configuration file.
+ true if this is declared in the configuration file; otherwise, false. The default is true.
+
+
+ Gets a value that indicates whether the associated configuration section is locked.
+ true if the section is locked; otherwise, false.
+
+
+ Gets a value that indicates whether the associated configuration section is protected.
+ true if this is protected; otherwise, false. The default is false.
+
+
+ Gets the name of the associated configuration section.
+ The complete name of the configuration section.
+
+
+ Gets or sets the enumeration value that specifies whether the associated configuration section can be overridden by child configuration files.
+ One of the enumeration values.
+ An attempt was made to change both the and properties, which is not supported for compatibility reasons.
+
+
+ Gets or sets a value that specifies the default override behavior of a configuration section by child configuration files.
+ One of the enumeration values.
+ The override behavior is specified in a parent configuration section.
+
+
+ Gets the override behavior of a configuration section that is in turn based on whether child configuration files can lock the configuration section.
+ One of the enumeration values.
+
+
+ Gets the protected configuration provider for the associated configuration section.
+ The protected configuration provider for this object.
+
+
+ Marks a configuration section for protection.
+
+ The property is set to false. - or - The target section is already a protected data section.
+
+
+ Gets a value that indicates whether the associated configuration section requires access permissions.
+ true if the requirePermission attribute is set to true; otherwise, false. The default is true.
+ The selected value conflicts with a value that is already defined.
+
+
+ Gets or sets a value that specifies whether a change in an external configuration include file requires an application restart.
+ true if a change in an external configuration include file requires an application restart; otherwise, false. The default is true.
+ The selected value conflicts with a value that is already defined.
+
+
+ Causes the associated configuration section to inherit all its values from the parent section.
+ This method cannot be called outside editing mode.
+
+
+ Gets the name of the associated configuration section.
+ The name of the associated object.
+
+
+ Sets the object to an XML representation of the associated configuration section within the configuration file.
+
+ xml is null.
+
+
+ Gets or sets the section class name.
+ The name of the class that is associated with this section.
+ The selected value is null or an empty string ("").
+ The selected value conflicts with a value that is already defined.
+
+
+ Removes the protected configuration encryption from the associated configuration section.
+
+
+ Represents a custom settings attribute used to associate settings information with a settings property.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides data for the event.
+
+
+ Initializes an instance of the class.
+ A containing the name of the application setting.
+ A containing a category description of the setting. Often this parameter is set to the application settings group name.
+ A containing the application settings key.
+ An that contains the new value to be assigned to the application settings property.
+ true to cancel the event; otherwise, false.
+
+
+ Gets the new value being assigned to the application settings property.
+ An that contains the new value to be assigned to the application settings property.
+
+
+ Gets the application settings property category.
+ A containing a category description of the setting. Typically, this parameter is set to the application settings group name.
+
+
+ Gets the application settings key associated with the property.
+ A containing the application settings key.
+
+
+ Gets the name of the application setting associated with the application settings property.
+ A containing the name of the application setting.
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically an application settings wrapper class derived from the class.
+ A containing the data for the event.
+
+
+ Represents a simplified configuration element used for updating elements in the configuration. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ The name of the object.
+ A object. This object is an enumeration used as the serialization scheme to store configuration settings.
+
+
+ Compares the current instance to the specified object.
+
+ true if the instance is equal to the specified object; otherwise, false.
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Gets or sets the name of the object.
+ The name of the object.
+
+
+ Gets or sets the serialization mechanism used to persist the values of the object.
+ A object.
+
+
+ Gets or sets the value of a object by using a object.
+ A object containing the value of the object.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ The object to add to the collection.
+
+
+ Removes all objects from the collection.
+
+
+ Gets the type of the configuration collection.
+ The object of the collection.
+
+
+ Gets a object from the collection.
+ A string value representing the object in the collection.
+ A object.
+
+
+ Removes a object from the collection.
+ A object.
+
+
+ Represents a collection of key/value pairs used to describe a configuration object as well as a object.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A collection of key/value pairs that are related to configuration settings.
+
+
+ Provides the base class used to support user property settings.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the associated settings context.
+ A associated with the settings instance.
+
+
+ Initializes internal properties used by object.
+ The settings context related to the settings properties.
+ The settings properties that will be accessible from the instance.
+ The initialized providers that should be used when loading and saving property values.
+
+
+ Gets a value indicating whether access to the object is synchronized (thread safe).
+ true if access to the is synchronized; otherwise, false.
+
+
+ Gets or sets the value of the specified settings property.
+ A containing the name of the property to access.
+ If found, the value of the named settings property.
+ There are no properties associated with the current object, or the specified property could not be found.
+ An attempt was made to set a read-only property.
+ The value supplied is of a type incompatible with the settings property, during a set operation.
+
+
+ Gets the collection of settings properties.
+ A collection containing all the objects.
+
+
+ Gets a collection of settings property values.
+ A collection of objects representing the actual data values for the properties managed by the instance.
+
+
+ Gets a collection of settings providers.
+ A containing objects.
+
+
+ Stores the current values of the settings properties.
+
+
+ Provides a class that is synchronized (thread safe).
+ The class used to support user property settings.
+ A class that is synchronized.
+
+
+ Provides contextual information that the provider can use when persisting settings.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a string that describes an individual configuration property. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ The used as descriptive text.
+
+
+ Gets the descriptive text for the associated configuration property.
+ A containing the descriptive text for the associated configuration property.
+
+
+ Provides a string that describes an application settings property group. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A containing the descriptive text for the application settings group.
+
+
+ The descriptive text for the application settings properties group.
+ A containing the descriptive text for the application settings group.
+
+
+ Specifies a name for application settings property group. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A containing the name of the application settings property group.
+
+
+ Gets the name of the application settings property group.
+ A containing the name of the application settings property group.
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+ A object from which settings are loaded.
+
+
+ Gets the settings provider used to store configuration settings.
+ A settings provider.
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically the settings class.
+ A object that contains the event data.
+
+
+ Provides values to indicate which services should be made available to application settings.
+
+
+ Enables application settings to be stored in roaming user profiles. For more information about roaming user profiles, see Isolated Storage and Roaming.
+
+
+
+ Specifies special services for application settings properties. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A value that enumerates the services being requested.
+
+
+ Gets the set of special services that have been requested.
+ A value that results from using the logical OR operator to combine all the enumeration values corresponding to the requested services.
+
+
+ Used internally as the class that represents metadata about an individual configuration property.
+
+
+ Initializes a new instance of the class, based on the supplied parameter.
+ Specifies a copy of an existing object.
+
+
+ Initializes a new instance of the class. based on the supplied parameter.
+ Specifies the name of an existing object.
+
+
+ Creates a new instance of the class based on the supplied parameters.
+ The name of the object.
+ The type of object.
+ A object to use for persistence.
+ A value specifying whether the object is read-only.
+ The default value of the object.
+ A object. This object is an enumeration used to set the serialization scheme for storing application settings.
+ A object.
+ A Boolean value specifying whether an error will be thrown when the property is unsuccessfully deserialized.
+ A Boolean value specifying whether an error will be thrown when the property is unsuccessfully serialized.
+
+
+ Gets a object containing the attributes of the object.
+ A object.
+
+
+ Gets or sets the default value of the object.
+ An object containing the default value of the object.
+
+
+ Gets or sets a value specifying whether a object is read-only.
+ true if the is read-only; otherwise, false.
+
+
+ Gets or sets the name of the .
+ The name of the .
+
+
+ Gets or sets the type for the .
+ The type for the .
+
+
+ Gets or sets the provider for the .
+ A object.
+
+
+ Gets or sets a object for the .
+ A object.
+
+
+ Gets or sets a value specifying whether an error will be thrown when the property is unsuccessfully deserialized.
+ true if the error will be thrown when the property is unsuccessfully deserialized; otherwise, false.
+
+
+ Gets or sets a value specifying whether an error will be thrown when the property is unsuccessfully serialized.
+ true if the error will be thrown when the property is unsuccessfully serialized; otherwise, false.
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+ The collection is read-only.
+
+
+ Removes all objects from the collection.
+ The collection is read-only.
+
+
+ Creates a copy of the existing collection.
+ A class.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index at which to begin copying.
+
+
+ Gets a value that specifies the number of objects in the collection.
+ The number of objects in the collection.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection.
+
+
+ Gets a value that indicates whether access to the collection is synchronized (thread safe).
+ true if access to the is synchronized; otherwise, false.
+
+
+ Gets the collection item with the specified name.
+ The name of the object.
+ The object with the specified name.
+
+
+ Performs additional, custom processing when adding to the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing after adding to the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing when clearing the contents of the instance.
+
+
+ Performs additional, custom processing after clearing the contents of the instance.
+
+
+ Performs additional, custom processing when removing the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing after removing the contents of the instance.
+ A object.
+
+
+ Removes a object from the collection.
+ The name of the object.
+ The collection is read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Provides an exception for read-only objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on a supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The object that holds the serialized object data about the exception being thrown.
+ The object that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Provides an exception for objects that are not found.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ The object that holds the serialized object data about the exception being thrown.
+ The object that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Contains the value of a settings property that can be loaded and stored by an instance of .
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ Specifies a object.
+
+
+ Gets or sets whether the value of a object has been deserialized.
+ true if the value of a object has been deserialized; otherwise, false.
+
+
+ Gets or sets whether the value of a object has changed.
+ true if the value of a object has changed; otherwise, false.
+
+
+ Gets the name of the property from the associated object.
+ The name of the object.
+
+
+ Gets the object.
+ The object that describes the object.
+
+
+ Gets or sets the value of the object.
+ The value of the object. When this value is set, the property is set to true and is set to false. When a value is first accessed from the property, and if the value was initially stored into the object as a serialized representation using the property, the property will trigger deserialization of the underlying value. As a side effect, the property will be set to true. If this chain of events occurs in ASP.NET, and if an error occurs during the deserialization process, the error is logged using the health-monitoring feature of ASP.NET. By default, this means that deserialization errors will show up in the Application Event Log when running under ASP.NET. If this process occurs outside of ASP.NET, and if an error occurs during deserialization, the error is suppressed, and the remainder of the logic during deserialization occurs. If there is no serialized value to deserialize when the deserialization is attempted, then object will instead attempt to return a default value if one was configured as defined on the associated instance. In this case, if the property was set to either null, or to the string "[null]", then the object will initialize the property to either null for reference types, or to the default value for the associated value type. On the other hand, if property holds a valid object reference or string value (other than "[null]"), then the property is returned instead. If there is no serialized value to deserialize when the deserialization is attempted, and no default value was specified, then an empty string will be returned for string types. For all other types, a default instance will be returned by calling — for reference types this means an attempt will be made to create an object instance using the default constructor. If this attempt fails, then null is returned.
+ While attempting to use the default value from the property, an error occurred. Either the attempt to convert property to a valid type failed, or the resulting value was not compatible with the type defined by .
+
+
+ Gets or sets the serialized value of the object.
+ The serialized value of a object.
+ The serialization options for the property indicated the use of a string type converter, but a type converter was not available.
+
+
+ Gets a Boolean value specifying whether the value of the object is the default value as defined by the property value on the associated object.
+ true if the value of the object is the default value; otherwise, false.
+
+
+ Contains a collection of settings property values that map objects to objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+ An attempt was made to add an item to the collection, but the collection was marked as read-only.
+
+
+ Removes all objects from the collection.
+
+
+ Creates a copy of the existing collection.
+ A class.
+
+
+ Copies this collection to an array.
+ The array to copy the collection to.
+ The index at which to begin copying.
+
+
+ Gets a value that specifies the number of objects in the collection.
+ The number of objects in the collection.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection.
+
+
+ Gets a value that indicates whether access to the collection is synchronized (thread safe).
+ true if access to the collection is synchronized; otherwise, false.
+
+
+ Gets an item from the collection.
+ A object.
+ The object with the specified name.
+
+
+ Removes a object from the collection.
+ The name of the object.
+ An attempt was made to remove an item from the collection, but the collection was marked as read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Provides an exception that is thrown when an invalid type is used with a object.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Acts as a base class for deriving custom settings providers in the application settings architecture.
+
+
+ Initializes an instance of the class.
+
+
+ Gets or sets the name of the currently running application.
+ A that contains the application's shortened name, which does not contain a full path or extension, for example, SimpleAppSettings.
+
+
+ Returns the collection of settings property values for the specified application instance and settings property group.
+ A describing the current application use.
+ A containing the settings property group whose values are to be retrieved.
+ A containing the values for the specified settings property group.
+
+
+ Sets the values of the specified group of property settings.
+ A describing the current application usage.
+ A representing the group of property settings to set.
+
+
+ Specifies the settings provider used to provide storage for the current application settings class or property. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ A containing the name of the settings provider.
+
+
+ Initializes a new instance of the class.
+ A containing the settings provider type.
+
+
+ Gets the type name of the settings provider.
+ A containing the name of the settings provider.
+
+
+ Represents a collection of application settings providers.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a new settings provider to the collection.
+ A to add to the collection.
+ The provider parameter is not of type . -or- The property of the provider parameter is null or an empty string. -or- A settings provider with the same already exists in the collection.
+ The collection is read-only.
+ The provider parameter is null.
+
+
+ Gets the settings provider in the collection that matches the specified name.
+ A containing the friendly name of the settings provider.
+ If found, the whose name matches that specified by the name parameter; otherwise, null.
+ The name parameter is null.
+ The collection is read-only when setting this value.
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically a data container or data-bound collection.
+ A that contains the event data.
+
+
+ Determines the serialization scheme used to store application settings.
+
+
+ The settings property is serialized using binary object serialization.
+
+
+
+ The settings provider has implicit knowledge of the property or its type and picks an appropriate serialization mechanism. Often used for custom serialization.
+
+
+
+ The settings property is serialized as plain text.
+
+
+
+ The settings property is serialized as XML using XML serialization.
+
+
+
+ Specifies the serialization mechanism that the settings provider should use. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ A enumerated value that specifies the serialization scheme.
+
+
+ Gets the enumeration value that specifies the serialization scheme.
+ A enumerated value that specifies the serialization scheme.
+
+
+ Contains the XML representing the serialized value of the setting. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Compares the current instance to the specified object.
+ The object to compare.
+ true if the instance is equal to the specified object; otherwise, false.
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Gets or sets the value of a object by using an object.
+ An object containing the value of a .
+
+
+ Handles configuration sections that are represented by a single XML tag in the .config file.
+
+
+ Initializes a new instance of the class.
+
+
+ Used internally to create a new instance of this object.
+ The parent of this object.
+ The context of this object.
+ The object in the configuration.
+ The created object handler.
+
+
+ Specifies the special setting category of a application settings property.
+
+
+ The configuration property represents a connection string, typically for a data store or network resource.
+
+
+
+ The configuration property represents a Uniform Resource Locator (URL) to a Web service.
+
+
+
+ Indicates that an application settings property has a special significance. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Gets the value describing the special setting category of the application settings property.
+ A enumeration value defining the category of the application settings property.
+
+
+ Provides validation of a string.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ An integer that specifies the minimum length of the string value.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ An integer that specifies the minimum length of the string value.
+ An integer that specifies the maximum length of the string value.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ An integer that specifies the minimum length of the string value.
+ An integer that specifies the maximum length of the string value.
+ A string that represents invalid characters.
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+ true if the type parameter matches a string; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+ value is less than minValue or greater than maxValue as defined in the constructor. - or - value contains invalid characters.
+
+
+ Declaratively instructs the .NET Framework to perform string validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the invalid characters for the property.
+ The string that contains the set of characters that are not allowed for the property.
+
+
+ Gets or sets the maximum length allowed for the string to assign to the property.
+ An integer that indicates the maximum allowed length for the string to assign to the property.
+ The selected value is less than .
+
+
+ Gets or sets the minimum allowed value for the string to assign to the property.
+ An integer that indicates the allowed minimum length for the string to assign to the property.
+ The selected value is greater than .
+
+
+ Gets an instance of the class.
+ A current settings in a validator instance.
+
+
+ Validates that an object is a derived class of a specified type.
+
+
+ Initializes a new instance of the class.
+ The base class to validate against.
+ baseClass is null.
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+ true if the type parameter matches a type that can be validated; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+ value is not of a that can be derived from baseClass as defined in the constructor.
+
+
+ Declaratively instructs the .NET Framework to perform validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The base class type.
+
+
+ Gets the base type of the object being validated.
+ The base type of the object being validated.
+
+
+ Gets the validator attribute instance.
+ The current instance.
+
+
+ Converts a time span expressed in minutes.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The representing the data parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The representing the value parameter in minutes.
+
+
+ Converts a expressed in minutes or as a standard infinite time span.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The , if the data parameter is the "infinite"; otherwise, the representing the data parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the value parameter is ; otherwise, the representing the value parameter in minutes.
+
+
+ Converts a time span expressed in seconds.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The representing the data parameter in seconds.
+ data cannot be parsed as an integer value.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the value parameter in minutes.
+
+
+ Converts a expressed in seconds or as a standard infinite time span.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The , if the data parameter is the "infinite"; otherwise, the representing the data parameter in seconds.
+
+
+ Converts a to a. .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the value parameter is ; otherwise, the representing the value parameter in seconds.
+
+
+ Provides validation of a object.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+ A value that specifies whether the validation range is exclusive.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+ A value that specifies whether the validation range is exclusive.
+ An value that specifies a number of seconds.
+ resolutionInSeconds is less than 0. - or - minValue is greater than maxValue.
+
+
+ Determines whether the type of the object can be validated.
+ The type of the object.
+ true if the type parameter matches a value; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Declaratively instructs the .NET Framework to perform time validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range as defined by and .
+ true if the value must be excluded; otherwise, false. The default is false.
+
+
+ Gets the absolute maximum value.
+ The allowed maximum value.
+
+
+ Gets or sets the relative maximum value.
+ The allowed maximum value.
+ The selected value represents less than .
+
+
+ Gets the absolute minimum value.
+ The allowed minimum value.
+
+
+ Gets or sets the relative minimum value.
+ The minimum allowed value.
+ The selected value represents more than .
+
+
+ Gets the absolute maximum value allowed.
+
+
+
+ Gets the absolute minimum value allowed.
+
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Converts between type and string values. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a object to a object.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The that represents the data parameter.
+ The value cannot be resolved.
+
+
+ Converts a object to a object.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the value parameter.
+
+
+ Represents the Uri section within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an object that contains the configuration setting for International Domain Name (IDN) processing in the class.
+ The configuration setting for International Domain Name (IDN) processing in the class.
+
+
+ Gets an object that contains the configuration setting for International Resource Identifiers (IRI) parsing in the class.
+ The configuration setting for International Resource Identifiers (IRI) parsing in the class.
+
+
+ Gets a object that contains the configuration settings for scheme parsing in the class.
+ The configuration settings for scheme parsing in the class
+
+
+ Specifies that an application settings group or property contains distinct values for each user of an application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents a grouping of related user settings sections within a configuration file. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents a method to be called after the validation of an object.
+
+
+
+ Converts a string to its canonical format.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to canonical form.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ An object representing the converted value.
+
+
+ Converts a to canonical form.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ An object representing the converted value.
+
+
+ Specifies the property of a configuration element. This class cannot be inherited.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ A object.
+ validator is null.
+
+
+ Gets a object used to validate the object.
+ A object.
+
+
+ The exception that is thrown when a configuration error has occurred.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The path to the configuration file that caused this exception to be thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of a class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The path to the configuration file that caused this exception to be thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The exception that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+ The current type is not a or a .
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The object that caused this exception to be thrown.
+
+
+ Gets a description of why this configuration exception was thrown.
+ A description of why this was thrown.
+
+
+ Gets a collection of errors that detail the reasons this exception was thrown.
+ An object that contains errors that identify the reasons this exception was thrown.
+
+
+ Gets the path to the configuration file that caused this configuration exception to be thrown.
+ The path to the configuration file that caused this to be thrown.
+
+
+ Gets the path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+
+
+ Gets the path to the configuration file that the internal was reading when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The path of the configuration file the internal object was accessing when the exception occurred.
+
+
+ Gets the line number within the configuration file that the internal object represented when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The line number within the configuration file that contains the object being parsed when this configuration exception was thrown.
+
+
+ Gets the line number within the configuration file that the internal object was processing when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The line number within the configuration file that the object was accessing when the exception occurred.
+
+
+ Sets the object with the file name and line number at which this configuration exception occurred.
+ The object that holds the information to be serialized.
+ The contextual information about the source or destination.
+
+
+ Gets the line number within the configuration file at which this configuration exception was thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Gets an extended description of why this configuration exception was thrown.
+ An extended description of why this exception was thrown.
+
+
+ The exception that is thrown when a configuration system error has occurred.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The that caused this to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+ The that caused this to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The path to the configuration file that caused this to be thrown.
+ The line number within the configuration file at which this was thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+ The path to the configuration file that caused this to be thrown.
+ The line number within the configuration file at which this was thrown.
+
+
+ Gets a description of why this configuration exception was thrown.
+ A description of why this exception was thrown.
+
+
+ Gets the path to the configuration file that caused this configuration exception to be thrown.
+ The path to the configuration file that caused this exception to be thrown.
+
+
+ Sets the object with the file name and line number at which this configuration exception occurred.
+ The object that holds the information to be serialized.
+ The contextual information about the source or destination.
+
+
+ Gets the path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+ The that caused this exception to be thrown.
+ A string representing the node file name.
+
+
+ Gets the line number within the configuration file that the internal object represented when this configuration exception was thrown.
+ The that caused this exception to be thrown.
+ An int representing the node line number.
+
+
+ Gets the line number within the configuration file at which this configuration exception was thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Gets an extended description of why this configuration exception was thrown.
+ An extended description of why this exception was thrown.
+
+
+ Defines the configuration file mapping for the machine configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the supplied parameter.
+ The name of the machine configuration file.
+
+
+ Creates a copy of the existing object.
+ A object.
+
+
+ Gets or sets the name of the machine configuration file name.
+ The machine configuration file name.
+
+
+ Represents a location element within a configuration file.
+
+
+ Creates an instance of a Configuration object.
+ A Configuration object.
+
+
+ Gets the relative path to the resource whose configuration settings are represented by this object.
+ The relative path to the resource whose configuration settings are represented by this .
+
+
+ Contains a collection of objects.
+
+
+ Gets the object at the specified index.
+ The index location of the to return.
+ The at the specified index.
+
+
+ Contains a collection of locked configuration objects. This class cannot be inherited.
+
+
+ Locks a configuration object by adding it to the collection.
+ The name of the configuration object.
+ Occurs when the name does not match an existing configuration object within the collection.
+
+
+ Gets a list of configuration objects contained in the collection.
+ A comma-delimited string that lists the lock configuration objects in the collection.
+
+
+ Clears all configuration objects from the collection.
+
+
+ Verifies whether a specific configuration object is locked.
+ The name of the configuration object to verify.
+ true if the contains the specified configuration object; otherwise, false.
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the . The must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+
+
+ Gets the number of locked configuration objects contained in the collection.
+ The number of locked configuration objects contained in the collection.
+
+
+ Gets an object, which is used to iterate through this collection.
+ An object.
+
+
+ Gets a value specifying whether the collection of locked objects has parent elements.
+ true if the collection has parent elements; otherwise, false.
+
+
+ Gets a value specifying whether the collection has been modified.
+ true if the collection has been modified; otherwise, false.
+
+
+ Verifies whether a specific configuration object is read-only.
+ The name of the configuration object to verify.
+ true if the specified configuration object in the collection is read-only; otherwise, false.
+ The specified configuration object is not in the collection.
+
+
+ Gets a value specifying whether the collection is synchronized.
+ true if the collection is synchronized; otherwise, false.
+
+
+ Removes a configuration object from the collection.
+ The name of the configuration object.
+ Occurs when the name does not match an existing configuration object within the collection.
+
+
+ Locks a set of configuration objects based on the supplied list.
+ A comma-delimited string.
+ Occurs when an item in the attributeList parameter is not a valid lockable configuration attribute.
+
+
+ Gets an object used to synchronize access to this collection.
+ An object used to synchronize access to this collection.
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the collection. The must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+
+
+ Provides access to configuration files for client applications. This class cannot be inherited.
+
+
+ Gets the data for the current application's default configuration.
+ Returns a object that contains the contents of the object for the current application's default configuration.
+ Could not retrieve a object with the application settings data.
+
+
+ Gets the data for the current application's default configuration.
+ Returns a object that contains the contents of the object for the current application's default configuration.
+ Could not retrieve a object.
+
+
+ Retrieves a specified configuration section for the current application's default configuration.
+ The configuration section path and name.
+ The specified object, or null if the section does not exist.
+ A configuration file could not be loaded.
+
+
+ Opens the configuration file for the current application as a object.
+ The for which you are opening the configuration.
+ A object.
+ A configuration file could not be loaded.
+
+
+ Opens the specified client configuration file as a object.
+ The path of the executable (exe) file.
+ A object.
+ A configuration file could not be loaded.
+
+
+ Opens the machine configuration file on the current computer as a object.
+ A object.
+ A configuration file could not be loaded.
+
+
+ Opens the specified client configuration file as a object that uses the specified file mapping and user level.
+ An object that references configuration file to use instead of the application default configuration file.
+ The object for which you are opening the configuration.
+ The configuration object.
+ A configuration file could not be loaded.
+
+
+ Opens the specified client configuration file as a object that uses the specified file mapping, user level, and preload option.
+ An object that references the configuration file to use instead of the default application configuration file.
+ The object for which you are opening the configuration.
+ true to preload all section groups and sections; otherwise, false.
+ The configuration object.
+ A configuration file could not be loaded.
+
+
+ Opens the machine configuration file as a object that uses the specified file mapping.
+ An object that references configuration file to use instead of the application default configuration file.
+ A object.
+ A configuration file could not be loaded.
+
+
+ Refreshes the named section so the next time that it is retrieved it will be re-read from disk.
+ The configuration section name or the configuration path and section name of the section to refresh.
+
+
+ Represents an attribute or a child of a configuration element. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+
+
+ The description of the configuration entity.
+
+
+ Gets the used to convert this into an XML representation for writing to the configuration file.
+ A used to convert this into an XML representation for writing to the configuration file.
+ This cannot be converted.
+
+
+ Gets the default value for this property.
+ An that can be cast to the type specified by the property.
+
+
+ Gets the description associated with the .
+ A string value that describes the property.
+
+
+ Indicates whether the assembly name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+ true if the property requires assembly name transformation; otherwise, false.
+
+
+ Gets a value that indicates whether the property is the default collection of an element.
+ true if the property is the default collection of an element; otherwise, false.
+
+
+ Gets a value indicating whether this is the key for the containing object.
+ true if this object is the key for the containing element; otherwise, false. The default is false.
+
+
+ Gets a value indicating whether this is required.
+ true if the is required; otherwise, false. The default is false.
+
+
+ Indicates whether the type name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+ true if the property requires type-name transformation; otherwise, false.
+
+
+ Indicates whether the configuration property's parent configuration section is queried at serialization time to determine whether the configuration property should be serialized into XML.
+ true if the parent configuration section should be queried; otherwise, false.
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ Gets the type of this object.
+ A representing the type of this object.
+
+
+ Gets the , which is used to validate this object.
+ The validator, which is used to validate this .
+
+
+ Declaratively instructs the .NET Framework to instantiate a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of class.
+ Name of the object defined.
+
+
+ Gets or sets the default value for the decorated property.
+ The object representing the default value of the decorated configuration-element property.
+
+
+ Gets or sets a value indicating whether this is the default property collection for the decorated configuration property.
+ true if the property represents the default collection of an element; otherwise, false. The default is false.
+
+
+ Gets or sets a value indicating whether this is a key property for the decorated element property.
+ true if the property is a key property for an element of the collection; otherwise, false. The default is false.
+
+
+ Gets or sets a value indicating whether the decorated element property is required.
+ true if the property is required; otherwise, false. The default is false.
+
+
+ Gets the name of the decorated configuration-element property.
+ The name of the decorated configuration-element property.
+
+
+ Gets or sets the for the decorated configuration-element property.
+ One of the enumeration values associated with the property.
+
+
+ Represents a collection of configuration-element properties.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a configuration property to the collection.
+ The to add.
+
+
+ Removes all configuration property objects from the collection.
+
+
+ Specifies whether the configuration property is contained in this collection.
+ An identifier for the to verify.
+ true if the specified is contained in the collection; otherwise, false.
+
+
+ Copies this ConfigurationPropertyCollection to an array.
+ Array to which to copy.
+ Index at which to begin copying.
+
+
+ Gets the number of properties in the collection.
+ The number of properties in the collection.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread safe).
+ true if access to the is synchronized; otherwise, false.
+
+
+ Gets the collection item with the specified name.
+ The to return.
+ The with the specified name.
+
+
+ Removes a configuration property from the collection.
+ The to remove.
+ true if the specified was removed; otherwise, false.
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Copies this collection to an array.
+ The array to which to copy.
+ The index location at which to begin copying.
+
+
+ Specifies the options to apply to a property.
+
+
+ Indicates whether the assembly name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+
+
+
+ Indicates that the property is a default collection.
+
+
+
+ Indicates that the property is a collection key.
+
+
+
+ Indicates that the property is required.
+
+
+
+ Indicates whether the type name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+
+
+
+ Indicates whether the configuration property's parent configuration section should be queried at serialization time to determine whether the configuration property should be serialized into XML.
+
+
+
+ Indicates that no option applies to the property.
+
+
+
+ Determines which properties are written out to a configuration file.
+
+
+ Causes all properties to be written to the configuration file. This is useful mostly for creating information configuration files or moving configuration values from one machine to another.
+
+
+
+ Causes only properties that differ from inherited values to be written to the configuration file.
+
+
+
+ Causes only modified properties to be written to the configuration file, even when the value is the same as the inherited value.
+
+
+
+ Represents a section within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Reads XML from the configuration file.
+ The object, which reads from the configuration file.
+ reader found no elements in the configuration file.
+
+
+ Returns a custom object when overridden in a derived class.
+ The object representing the section.
+
+
+ Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.
+ true if the element has been modified; otherwise, false.
+
+
+ Resets the value of the method to false when implemented in a derived class.
+
+
+ Gets a object that contains the non-customizable information and functionality of the object.
+ A that contains the non-customizable information and functionality of the .
+
+
+ Creates an XML string containing an unmerged view of the object as a single section to write to a file.
+ The instance to use as the parent when performing the un-merge.
+ The name of the section to create.
+ The instance to use when writing to a string.
+ An XML string containing an unmerged view of the object.
+
+
+ Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The object that is a candidate for serialization.
+ The name of the object as it occurs in XML.
+ The target version of the .NET Framework.
+ true if the element should be serialized; otherwise, false.
+
+
+ Indicates whether the specified property should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The object that is a candidate for serialization.
+ The name of the object as it occurs in XML.
+ The target version of the .NET Framework.
+ The parent element of the property.
+ true if the property should be serialized; otherwise, false.
+
+
+ Indicates whether the current instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The target version of the .NET Framework.
+ true if the current section should be serialized; otherwise, false.
+
+
+ Represents a collection of related sections within a configuration file.
+
+
+ Adds a object to the object.
+ The name of the section to be added.
+ The section to be added.
+
+
+ Clears this object.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index location at which to begin copying.
+ array is null.
+ The length of array is less than the value of plus index.
+
+
+ Gets the number of sections in this object.
+ An integer that represents the number of sections in the collection.
+
+
+ Gets the specified object contained in this object.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object contained in this object.
+ The name of the object to be returned.
+ The object with the specified name.
+ name is null or an empty string ("").
+
+
+ Gets an enumerator that can iterate through this object.
+ An that can be used to iterate through this object.
+
+
+ Gets the key of the specified object contained in this object.
+ The index of the object whose key is to be returned.
+ The key of the object at the specified index.
+
+
+ Used by the system during serialization.
+ The applicable object.
+ The applicable object.
+
+
+ Gets the specified object.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object.
+ The name of the object to be returned.
+ The object with the specified name.
+
+
+ Gets the keys to all objects contained in this object.
+ A object that contains the keys of all sections in this collection.
+
+
+ Removes the specified object from this object.
+ The name of the section to be removed.
+
+
+ Removes the specified object from this object.
+ The index of the section to be removed.
+
+
+ Represents a group of related sections within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Forces the declaration for this object.
+
+
+ Forces the declaration for this object.
+
+ The object is the root section group. - or - The object has a location.
+
+
+ Gets a value that indicates whether this object declaration is required.
+ true if this declaration is required; otherwise, false.
+
+
+ Gets a value that indicates whether this object is declared.
+ true if this is declared; otherwise, false. The default is false.
+
+
+ Gets the name property of this object.
+ The name property of this object.
+
+
+ Gets the section group name associated with this .
+ The section group name of this object.
+
+
+ Gets a object that contains all the objects that are children of this object.
+ A object that contains all the objects that are children of this object.
+
+
+ Gets a object that contains all of objects within this object.
+ A object that contains all the objects within this object.
+
+
+ Indicates whether the current instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The target version of the .NET Framework.
+ true if the current section group should be serialized; otherwise, false.
+
+
+ Gets or sets the type for this object.
+ The type of this object.
+ The object is the root section group. - or - The object has a location.
+ The section or group is already defined at another level.
+
+
+ Represents a collection of objects.
+
+
+ Adds a object to this object.
+ The name of the object to be added.
+ The object to be added.
+
+
+ Clears the collection.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index location at which to begin copying.
+ array is null.
+ The length of array is less than the value of plus index.
+
+
+ Gets the number of section groups in the collection.
+ An integer that represents the number of section groups in the collection.
+
+
+ Gets the specified object contained in the collection.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object from the collection.
+ The name of the object to be returned.
+ The object with the specified name.
+ name is null or an empty string ("").
+
+
+ Gets an enumerator that can iterate through the object.
+ An that can be used to iterate through the object.
+
+
+ Gets the key of the specified object contained in this object.
+ The index of the section group whose key is to be returned.
+ The key of the object at the specified index.
+
+
+ Used by the system during serialization.
+ The applicable object.
+ The applicable object.
+
+
+ Gets the object whose index is specified from the collection.
+ The index of the object to be returned.
+ The object at the specified index. In C#, this property is the indexer for the class.
+
+
+ Gets the object whose name is specified from the collection.
+ The name of the object to be returned.
+ The object with the specified name. In C#, this property is the indexer for the class.
+
+
+ Gets the keys to all objects contained in this object.
+ A object that contains the names of all section groups in this collection.
+
+
+ Removes the object whose name is specified from this object.
+ The name of the section group to be removed.
+
+
+ Removes the object whose index is specified from this object.
+ The index of the section group to be removed.
+
+
+ Provides runtime versions 1.0 and 1.1 support for reading configuration sections and common configuration settings.
+
+
+ Gets a read-only of the application settings section of the configuration file.
+ A read-only of the application settings section from the configuration file.
+
+
+ Returns the object for the passed configuration section name and path.
+ A configuration name and path, such as "system.net/settings".
+ The object for the passed configuration section name and path.
+
The class provides backward compatibility only. You should use the class or class instead.
+
+
+ Unable to retrieve the requested section.
+
+
+ Used to specify which configuration file is to be represented by the Configuration object.
+
+
+ Get the that applies to all users.
+
+
+
+ Get the roaming that applies to the current user.
+
+
+
+ Get the local that applies to the current user.
+
+
+
+ Serves as the base class for the validator attribute types.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified validator type.
+ The validator type to use when creating an instance of .
+ validator is null.
+ validator is not derived from .
+
+
+ Gets the validator attribute instance.
+ The current .
+
+
+ Gets the type of the validator attribute.
+ The of the current validator attribute instance.
+
+
+ Acts as a base class for deriving a validation class so that a value of an object can be verified.
+
+
+ Initializes an instance of the class.
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+ true if the type parameter value matches the expected type; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+
+
+ Wraps the corresponding type and also carries the necessary information for reporting file-name and line numbers.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a configuration element attribute.
+ The prefix definition.
+ The name that is used locally.
+ The URL that is assigned to the namespace.
+ The attribute.
+
+
+ Creates an XML CData section.
+ The data to use.
+ The value.
+
+
+ Create an XML comment.
+
+ The value.
+
+
+ Creates a configuration element.
+ The prefix definition.
+ The name used locally.
+ The namespace for the URL.
+ The value.
+
+
+ Creates white spaces.
+ The data to use.
+ The value.
+
+
+ Create a text node.
+ The text to use.
+ The value.
+
+
+ Creates white space.
+ The data to use.
+ The value.
+
+
+ Gets the configuration file name.
+ The configuration file name.
+
+
+ Gets the current node line number.
+ The line number for the current node.
+
+
+ Loads the configuration file.
+ The name of the file.
+
+
+ Loads a single configuration element.
+ The name of the file.
+ The source for the reader.
+
+
+ Gets the configuration file name.
+ The file name.
+
+
+ Gets the configuration line number.
+ The line number.
+
+
+ Represents a single, named connection string in the connection strings configuration file section.
+
+
+ Initializes a new instance of a class.
+
+
+ Initializes a new instance of a class.
+ The name of the connection string.
+ The connection string.
+
+
+ Initializes a new instance of a object.
+ The name of the connection string.
+ The connection string.
+ The name of the provider to use with the connection string.
+
+
+ Gets or sets the connection string.
+ The string value assigned to the property.
+
+
+ Gets or sets the name.
+ The string value assigned to the property.
+
+
+ Gets or sets the provider name property.
+ Gets or sets the property.
+
+
+ Returns a string representation of the object.
+ A string representation of the object.
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object to add to the collection.
+
+
+ Removes all the objects from the collection.
+
+
+ Returns the collection index of the passed object.
+ A object in the collection.
+ The collection index of the specified object.
+
+
+ Gets or sets the connection string at the specified index in the collection.
+ The index of a object in the collection.
+ The object at the specified index.
+
+
+ Gets or sets the object with the specified name in the collection.
+
+ The object with the specified name; otherwise, null.
+
+
+ Removes the specified object from the collection.
+ A object in the collection.
+
+
+ Removes the specified object from the collection.
+ The name of a object in the collection.
+
+
+ Removes the object at the specified index in the collection.
+ The index of a object in the collection.
+
+
+ Provides programmatic access to the connection strings configuration-file section.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a collection of objects.
+ A collection of objects.
+
+
+ Encapsulates the context information that is associated with a object. This class cannot be inherited.
+
+
+ Provides an object containing configuration-section information based on the specified section name.
+ The name of the configuration section.
+ An object containing the specified section within the configuration.
+
+
+ Gets the context of the environment where the configuration property is being evaluated.
+ An object specifying the environment where the configuration property is being evaluated.
+
+
+ Gets a value specifying whether the configuration property is being evaluated at the machine configuration level.
+ true if the configuration property is being evaluated at the machine configuration level; otherwise, false.
+
+
+ Represents a basic configuration-section handler that exposes the configuration section's XML for both read and write access.
+
+
+ Initializes a new instance of the class.
+
+
+ Specifies the default value for an application settings property.
+
+
+ Initializes an instance of the class.
+ A that represents the default value for the property.
+
+
+ Gets the default value for the application settings property.
+ A that represents the default value for the property.
+
+
+ Provides validation of an object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether an object can be validated, based on type.
+ The object type.
+ true for all types being validated.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+
+
+ Provides key/value pair configuration information from a configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ A configuration object.
+
+
+ Gets the XML attribute name to use as the key in a key/value pair.
+ A string value containing the name of the key attribute.
+
+
+ Gets the XML attribute name to use as the value in a key/value pair.
+ A string value containing the name of the value attribute.
+
+
+ Defines an interface used by the .NET Framework to initialize configuration properties.
+
+
+ Gets the configuration file name related to the application path.
+ A string value representing a configuration file name.
+
+
+ Gets the local configuration directory of the application based on the entry assembly.
+ A string representing the local configuration directory.
+
+
+ Gets the local configuration path of the application based on the entry assembly.
+ A string value representing the local configuration path of the application.
+
+
+ Gets the product name of the application based on the entry assembly.
+ A string value representing the product name of the application.
+
+
+ Gets the product version of the application based on the entry assembly.
+ A string value representing the product version of the application.
+
+
+ Gets the roaming configuration directory of the application based on the entry assembly.
+ A string value representing the roaming configuration directory of the application.
+
+
+ Gets the roaming user's configuration path based on the application's entry assembly.
+ A string value representing the roaming user's configuration path.
+
+
+ Gets the configuration path for the Machine.config file.
+ A string value representing the path of the Machine.config file.
+
+
+ Gets a value representing the configuration system's status.
+ true if the configuration system is in the process of being initialized; otherwise, false.
+
+
+ Gets a value that specifies whether user configuration settings are supported.
+ true if the configuration system supports user configuration settings; otherwise, false.
+
+
+ Gets the name of the file used to store user configuration settings.
+ A string specifying the name of the file used to store user configuration.
+
+
+ Defines interfaces that allow the internal .NET Framework infrastructure to customize configuration.
+
+
+ Returns the path to the application configuration file.
+ A string representing the path to the application configuration file.
+
+
+ Returns a string representing the path to the known local user configuration file.
+ A string representing the path to the known local user configuration file.
+
+
+ Returns a string representing the path to the known roaming user configuration file.
+ A string representing the path to the known roaming user configuration file.
+
+
+ Returns a value indicating whether a configuration file path is the same as a currently known application configuration file path.
+ A string representing the path to the application configuration file.
+ true if a string representing a configuration path is the same as a path to the application configuration file; false if a string representing a configuration path is not the same as a path to the application configuration file.
+
+
+ Returns a value indicating whether a configuration file path is the same as the configuration file path for the currently known local user.
+ A string representing the path to the application configuration file.
+ true if a string representing a configuration path is the same as a path to a known local user configuration file; otherwise, false.
+
+
+ Returns a value indicating whether a configuration file path is the same as the configuration file path for the currently known roaming user.
+ A string representing the path to an application configuration file.
+ true if a string representing a configuration path is the same as a path to a known roaming user configuration file; otherwise, false.
+
+
+ Defines the interfaces used by the internal design time API to create a object.
+
+
+ Creates and initializes a object.
+ The of the object to be created.
+ A parameter array of that contains the parameters to be applied to the created object.
+ A object.
+
+
+ Normalizes a location subpath of a path to a configuration file.
+ A string representing the path to the configuration file.
+ An instance of or null.
+ A normalized subpath string.
+
+
+ Defines interfaces used by internal .NET structures to initialize application configuration properties.
+
+
+ Creates and returns a context object for a of an application configuration.
+ A string representing the path of the application configuration file.
+ A string representing a subpath location of the configuration element.
+ A context object for a object of an application configuration.
+
+
+ Creates and returns a deprecated context object of the application configuration.
+ A string representing a path to an application configuration file.
+ A deprecated context object of the application configuration.
+
+
+ Decrypts an encrypted configuration section and returns it as a string.
+ An encrypted XML string representing a configuration section.
+ The object.
+
+ A decrypted configuration section as a string.
+
+
+ Deletes the object performing I/O tasks on the application configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+
+
+ Encrypts a configuration section and returns it as a string.
+
+ The object.
+
+ An encrypted configuration section represented as a string.
+
+
+ Returns the complete path to an application configuration file based on the location subpath.
+ A string representing the path of the application configuration file.
+
+ A string representing the complete path to an application configuration file.
+
+
+ Returns a object representing the type of the configuration object.
+ The type name
+ true to throw an exception if an error occurs; otherwise, false
+ A object representing the type of the configuration object.
+
+
+ Returns a string representing a type name from the object representing the type of the configuration.
+ A object.
+ A string representing the type name from a object representing the type of the configuration.
+
+
+ Returns a string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+ A string representing the path of the application configuration file.
+ A string representing the configuration file name associated with the I/O tasks on the configuration file.
+
+
+ Returns a string representing the configuration file name associated with the object performing I/O tasks on a remote configuration file.
+ A string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+ A string representing a path to a remote configuration file.
+ A string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+
+
+ Returns the version of the object associated with configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The version of the object associated with configuration file.
+
+
+ Instructs the host to impersonate and returns an object required by the internal .NET structure.
+ An value.
+
+
+ Initializes a configuration host.
+
+ The parameter object containing the values used for initializing the configuration host.
+
+
+ Initializes a configuration object.
+ The subpath location of the configuration file.
+ A string representing the path of the application configuration file.
+ A string representing the location of a configuration path.
+
+ The parameter object containing the values used for initializing the configuration host.
+
+
+ Returns a value indicating whether the configuration file is located at a higher level in the configuration hierarchy than the application configuration.
+ A string representing the path of the application configuration file.
+ true the configuration file is located at a higher level in the configuration hierarchy than the application configuration; otherwise, false.
+
+
+ Returns a value indicating whether a child record is required for a child configuration path.
+ A string representing the path of the application configuration file.
+ true if child record is required for a child configuration path; otherwise, false.
+
+
+ Determines if a different definition is allowable for an application configuration object.
+ A string representing the path of the application configuration file.
+ A object.
+ A object.
+ true if a different definition is allowable for an application configuration object; otherwise, false.
+
+
+ Returns a value indicating whether the file path used by a object to read a configuration file is a valid path.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true if the path used by a object to read a configuration file is a valid path; otherwise, false.
+
+
+ Returns a value indicating whether a configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands.
+ The object.
+ true if the configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands; otherwise, false.
+
+
+ Returns a value indicating whether the initialization of a configuration object is considered delayed.
+ The object.
+ true if the initialization of a configuration object is considered delayed; otherwise, false.
+
+
+ Returns a value indicating whether the configuration object supports a location tag.
+ A string representing the path of the application configuration file.
+ true if the configuration object supports a location tag; otherwise, false.
+
+
+ Returns a value indicating whether the configuration is remote.
+ true if the configuration is remote; otherwise, false.
+
+
+ Returns a value indicating whether a configuration path is to a configuration node whose contents should be treated as a root.
+ A string representing the path of the application configuration file.
+ true if the configuration path is to a configuration node whose contents should be treated as a root; otherwise, false.
+
+
+ Returns a value indicating whether the configuration path is trusted.
+ A string representing the path of the application configuration file.
+ true if the configuration path is trusted; otherwise, false.
+
+
+ Opens a to read a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object.
+
+
+ Opens a object to read a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true to assert permissions; otherwise, false.
+ Returns the object specified by streamName.
+
+
+ Opens a object for writing to a configuration file or for writing to a temporary file used to build a configuration file. Allows a object to be designated as a template for copying file attributes.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object.
+ A object.
+
+
+ Opens a object for writing to a configuration file. Allows a object to be designated as a template for copying file attributes.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The name of a from which file attributes are to be copied as a template.
+ The write context of the object performing I/O tasks on the configuration file.
+ true to assert permissions; otherwise, false.
+ Returns the object specified by streamName.
+
+
+ Returns a value indicating whether the entire configuration file could be read by a designated object.
+ A string representing the path of the application configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true if the entire configuration file could be read by the object designated by streamName; otherwise, false.
+
+
+ Instructs the object to read a designated section of its associated configuration file.
+ A string representing the identifying name of a configuration file section group.
+ A string representing the identifying name of a configuration file section.
+ true if a section of the configuration file designated by sectionGroupName and sectionName could be read by a object; otherwise, false.
+
+
+ Indicates a new configuration record requires a complete initialization.
+ An object.
+
+
+ Instructs the object to monitor an associated object for changes in a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object to receive the returned data representing the changes in the configuration file.
+ An containing changed configuration settings.
+
+
+ Instructs the object to stop monitoring an associated object for changes in a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object.
+
+
+ Returns a value indicating whether the host configuration supports change notification.
+ true if the configuration supports change notification; otherwise, false.
+
+
+ Returns a value indicating whether the host configuration supports location tags.
+ true if the configuration supports location tags; otherwise, false.
+
+
+ Returns a value indicating whether the host configuration supports path tags.
+ true if the configuration supports path tags; otherwise, false.
+
+
+ Returns a value indicating whether the host configuration supports configuration refresh.
+ true if the configuration supports configuration refresh; otherwise, false.
+
+
+ Verifies that a configuration definition is allowed for a configuration record.
+ A string representing the path of the application configuration file.
+ A object.
+ A object
+ An object.
+
+
+ Indicates that all writing to the configuration file has completed.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true if the write to the configuration file was completed successfully; otherwise, false.
+ The write context of the object performing I/O tasks on the configuration file.
+
+
+ Indicates that all writing to the configuration file has completed and specifies whether permissions should be asserted.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ true to indicate the write was completed successfully; otherwise, false.
+ The write context of the object performing I/O tasks on the configuration file.
+ true to assert permissions; otherwise, false.
+
+
+ Defines interfaces used by internal .NET structures to support creation of new configuration records.
+
+
+ Gets a string representing a configuration file path.
+ A string representing a configuration file path.
+
+
+ Returns an object representing a section of a configuration from the last-known-good (LKG) configuration.
+ A string representing a key to a configuration section.
+ An instance representing the section of the last-known-good configuration specified by configKey.
+
+
+ Returns an instance representing a section of a configuration file.
+ A string representing a key to a configuration section.
+ An instance representing a section of a configuration file.
+
+
+ Returns a value indicating whether an error occurred during initialization of a configuration object.
+ true if an error occurred during initialization of a configuration object; otherwise, false.
+
+
+ Causes a specified section of the configuration object to be reinitialized.
+ A string representing a key to a configuration section that is to be refreshed.
+
+
+ Removes a configuration record.
+
+
+ Returns the name of a object performing I/O tasks on the configuration file.
+ A string representing the name of a object performing I/O tasks on the configuration file.
+
+
+ Grants the configuration object the permission to throw an exception if an error occurs during initialization.
+
+
+ Defines interfaces used by internal .NET structures to support a configuration root object.
+
+
+ Represents the method that handles the event of an object.
+
+
+
+ Represents the method that handles the event of a object.
+
+
+
+ Returns an object representing a configuration specified by a configuration path.
+ A string representing the path to a configuration file.
+ An object representing a configuration specified by configPath.
+
+
+ Returns an representing the data in a section of a configuration file.
+ A string representing a section of a configuration file.
+ A string representing the path to a configuration file.
+ An representing the data in a section of a configuration file.
+
+
+ Returns a value representing the file path of the nearest configuration ancestor that has configuration data.
+ The path of configuration file.
+ Returns a string representing the file path of the nearest configuration ancestor that has configuration data.
+
+
+ Returns an object representing a unique configuration record for given configuration path.
+ The path of the configuration file.
+ An object representing a unique configuration record for a given configuration path.
+
+
+ Initializes a configuration object.
+ An object.
+ true if design time; false if run time.
+
+
+ Returns a value indicating whether the configuration is a design-time configuration.
+ true if the configuration is a design-time configuration; false if the configuration is not a design-time configuration.
+
+
+ Finds and removes a configuration record and all its children for a given configuration path.
+ The path of the configuration file.
+
+
+ Defines an interface used by the configuration system to set the class.
+
+
+ Indicates that initialization of the configuration system has completed.
+
+
+ Provides hierarchical configuration settings and extensions specific to ASP.NET to the configuration system.
+ An object used by the class.
+ true if the initialization process of the configuration system is complete; otherwise, false.
+
+
+ Defines an interface used by the .NET Framework to initialize application configuration properties.
+
+
+ Returns the configuration object based on the specified key.
+ The configuration key value.
+ A configuration object.
+
+
+ Refreshes the configuration system based on the specified section name.
+ The name of the configuration section.
+
+
+ Gets a value indicating whether the user configuration is supported.
+ true if the user configuration is supported; otherwise, false.
+
+
+ Defines a class that allows the .NET Framework infrastructure to specify event arguments for configuration events.
+
+
+ Initializes a new instance of the class.
+ A configuration path.
+
+
+ Gets or sets the configuration path related to the object.
+ A string value specifying the configuration path.
+
+
+ Defines a class used by the .NET Framework infrastructure to support configuration events.
+ The source object of the event.
+ A configuration event argument.
+
+
+ Represents a method for hosts to call when a monitored stream has changed.
+ The name of the object performing I/O tasks on the configuration file.
+
+
+ Defines standard functionality for controls or libraries that store and retrieve application settings.
+
+
+ Reads the control's application settings into their corresponding properties and updates the control's state.
+
+
+ Resets the control's application settings properties to their default values.
+
+
+ Persists the control's application settings properties.
+
+
+ Gets or sets a value indicating whether the control should automatically persist its application settings properties.
+ true if the control should automatically persist its state; otherwise, false.
+
+
+ Gets or sets the value of the application settings key for the current instance of the control.
+ A containing the settings key for the current instance of the control.
+
+
+ Provides the configuration setting for International Resource Identifier (IRI) processing in the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the value of the configuration setting.
+ A Boolean that indicates if International Resource Identifier (IRI) processing is enabled.
+
+
+ Provides an interface for defining an alternate application settings provider.
+
+
+ Returns the settings provider compatible with the specified settings property.
+ The that requires serialization.
+ If found, the that can persist the specified settings property; otherwise, null.
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection based on the supplied parameters.
+ A .
+
+
+ Adds a object to the collection based on the supplied parameters.
+ A string specifying the key.
+ A string specifying the value.
+
+
+ Gets the keys to all items contained in the collection.
+ A string array.
+
+
+ Clears the collection.
+
+
+ When overridden in a derived class, the method creates a new object.
+ A newly created .
+
+
+ Gets the element key for a specified configuration element when overridden in a derived class.
+ The to which the key should be returned.
+ An object that acts as the key for the specified .
+
+
+ Gets the object based on the supplied parameter.
+ The key of the contained in the collection.
+ A configuration element, or null if the key does not exist in the collection.
+
+
+ Gets a collection of configuration properties.
+ A collection of configuration properties.
+
+
+ Removes a object from the collection.
+ A string specifying the key.
+
+
+ Gets a value indicating whether an attempt to add a duplicate object to the collection will cause an exception to be thrown.
+ true if an attempt to add a duplicate to the will cause an exception to be thrown; otherwise, false.
+
+
+ Represents a configuration element that contains a key/value pair.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The key of the .
+ The value of the .
+
+
+ Sets the object to its initial state.
+
+
+ Gets the key of the object.
+ The key of the .
+
+
+ Gets the collection of properties.
+ The of properties for the element.
+
+
+ Gets or sets the value of the object.
+ The value of the .
+
+
+ Provides persistence for application settings classes.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the currently running application.
+ A string that contains the application's display name.
+
+
+ Returns the value of the named settings property for the previous version of the same application.
+ A that describes where the application settings property is used.
+ The whose value is to be returned.
+ A representing the application setting if found; otherwise, null.
+
+
+ Returns the collection of setting property values for the specified application instance and settings property group.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+ A containing the values for the specified settings property group.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings.
+
+
+ Initializes the provider.
+ The friendly name of the provider.
+ A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.
+
+
+ Resets all application settings properties associated with the specified application to their default values.
+ A describing the current application usage.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings.
+
+
+ Sets the values of the specified group of property settings.
+ A describing the current application usage.
+ A representing the group of property settings to set.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings. -or- There was a general failure saving the settings to the configuration file.
+
+
+ Attempts to migrate previous user-scoped settings from a previous version of the same application.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings. -or- The previous version of the configuration file could not be accessed.
+
+
+ Provides validation of an value.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the long value.
+ An value that specifies the maximum length of the long value.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the long value.
+ An value that specifies the maximum length of the long value.
+ A value that specifies whether the validation range is exclusive.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the long value.
+ An value that specifies the maximum length of the long value.
+ A value that specifies whether the validation range is exclusive.
+ An value that specifies a specific value that must be matched.
+ resolution is equal to or less than 0. - or - maxValue is less than minValue.
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+ true if the type parameter matches an value; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Declaratively instructs the .NET Framework to perform long-integer validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range defined by the and property values.
+ true if the value must be excluded; otherwise, false. The default is false.
+
+
+ Gets or sets the maximum value allowed for the property.
+ A long integer that indicates the allowed maximum value.
+ The selected value is less than .
+
+
+ Gets or sets the minimum value allowed for the property.
+ An integer that indicates the allowed minimum value.
+ The selected value is greater than .
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+
+
+ Gets the keys to all items contained in the .
+ A string array.
+
+
+ Clears the .
+
+
+ Gets or sets the object based on the supplied parameter.
+ The name of the contained in the collection.
+ A object.
+
+
+ Removes a object from the collection based on the provided parameter.
+ A object.
+
+
+ Removes a object from the collection based on the provided parameter.
+ The name of the object.
+
+
+ A configuration element that contains a name and value. This class cannot be inherited.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ The name of the object.
+ The value of the object.
+
+
+ Gets the name of the object.
+ The name of the object.
+
+
+ Gets or sets the value of the object.
+ The value of the object.
+
+
+ Provides access to a configuration file. This type supports the .NET Framework configuration infrastructure and is not intended to be used directly from your code.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ The parent object.
+ The configuration context object.
+ The section XML node.
+ A configuration object.
+ The file specified in the file attribute of section exists but cannot be loaded. - or - The name attribute of section does not match the root element of the file specified in the file attribute.
+
+
+ Provides name/value-pair configuration information from a configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ A configuration object.
+
+
+ Gets the XML attribute name to use as the key in a key/value pair.
+ A value containing the name of the key attribute.
+
+
+ Gets the XML attribute name to use as the value in a key/value pair.
+ A value containing the name of the value attribute.
+
+
+ Specifies that a settings provider should disable any logic that gets invoked when an application upgrade is detected. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Specifies the override behavior of a configuration element for configuration elements in child directories.
+
+
+ The configuration setting of the element or group can be overridden by configuration settings that are in child directories.
+
+
+
+ The configuration setting of the element or group cannot be overridden by configuration settings that are in child directories.
+
+
+
+ The configuration setting of the element or group will be overridden by configuration settings that are in child directories if explicitly allowed by a parent element of the current configuration element or group. Permission to override is specified by using the OverrideMode attribute.
+
+
+
+ Provides validation of a object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the object type can be validated.
+ The object type.
+ true if the type parameter matches a object; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+ value is null.
+ value cannot be resolved as a positive value.
+
+
+ Declaratively instructs the .NET Framework to perform time validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Contains meta-information on an individual property within the configuration. This type cannot be inherited.
+
+
+ Gets the object related to the configuration attribute.
+ A object.
+
+
+ Gets an object containing the default value related to a configuration attribute.
+ An object containing the default value of the configuration attribute.
+
+
+ Gets the description of the object that corresponds to a configuration attribute.
+ The description of the configuration attribute.
+
+
+ Gets a value specifying whether the configuration attribute is a key.
+ true if the configuration attribute is a key; otherwise, false.
+
+
+ Gets a value specifying whether the configuration attribute is locked.
+ true if the object is locked; otherwise, false.
+
+
+ Gets a value specifying whether the configuration attribute has been modified.
+ true if the object has been modified; otherwise, false.
+
+
+ Gets a value specifying whether the configuration attribute is required.
+ true if the object is required; otherwise, false.
+
+
+ Gets the line number in the configuration file related to the configuration attribute.
+ A line number of the configuration file.
+
+
+ Gets the name of the object that corresponds to a configuration attribute.
+ The name of the object.
+
+
+ Gets the source file that corresponds to a configuration attribute.
+ The source file of the object.
+
+
+ Gets the of the object that corresponds to a configuration attribute.
+ The of the object.
+
+
+ Gets a object related to the configuration attribute.
+ A object.
+
+
+ Gets or sets an object containing the value related to a configuration attribute.
+ An object containing the value for the object.
+
+
+ Gets a object related to the configuration attribute.
+ A object.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the collection. The must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+ array is null.
+ The property of array is less than + index.
+
+
+ Gets an object, which is used to iterate through this collection.
+ An object, which is used to iterate through this .
+
+
+ Populates a object with the data needed to serialize the instance.
+ A object that contains the information required to serialize the instance.
+ A object that contains the source and destination of the serialized stream associated with the instance.
+ info is null.
+
+
+ Gets the object in the collection, based on the specified property name.
+ The name of the configuration attribute contained in the object.
+ A object.
+
+
+ Specifies the level in the configuration hierarchy where a configuration property value originated.
+
+
+ The configuration property value originates from the property.
+
+
+
+ The configuration property value is inherited from a parent level in the configuration.
+
+
+
+ The configuration property value is defined at the current level of the hierarchy.
+
+
+
+ Provides access to the protected-configuration providers for the current application's configuration file.
+
+
+ The name of the data protection provider.
+
+
+
+ Gets the name of the default protected-configuration provider.
+ The name of the default protected-configuration provider.
+
+
+ The name of the protected data section.
+
+
+
+ Gets a collection of the installed protected-configuration providers.
+ A collection of installed objects.
+
+
+ The name of the RSA provider.
+
+
+
+ Specifies that an application settings property has a common value for all users of an application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Acts as a base class for deriving concrete wrapper classes to implement the application settings feature in Window Forms applications.
+
+
+ Initializes an instance of the class to its default state.
+
+
+ Initializes an instance of the class using the supplied owner component.
+ The component that will act as the owner of the application settings object.
+ owner is null.
+
+
+ Initializes an instance of the class using the supplied settings key.
+ A that uniquely identifies separate instances of the wrapper class.
+
+
+ Initializes an instance of the class using the supplied owner component and settings key.
+ The component that will act as the owner of the application settings object.
+ A that uniquely identifies separate instances of the wrapper class.
+ owner is null.
+
+
+ Gets the application settings context associated with the settings group.
+ A associated with the settings group.
+
+
+ Returns the value of the named settings property for the previous version of the same application.
+ A containing the name of the settings property whose value is to be returned.
+ An containing the value of the specified if found; otherwise, null.
+ The property does not exist. The property count is zero or the property cannot be found in the data store.
+
+
+ Gets or sets the value of the specified application settings property.
+ A containing the name of the property to access.
+ If found, the value of the named settings property; otherwise, null.
+ There are no properties associated with the current wrapper or the specified property could not be found.
+ An attempt was made to set a read-only property.
+ The value supplied is of a type incompatible with the settings property, during a set operation.
+ The configuration file could not be parsed.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Gets the collection of settings properties in the wrapper.
+ A containing all the objects used in the current wrapper.
+ The associated settings provider could not be found or its instantiation failed.
+
+
+ Occurs after the value of an application settings property is changed.
+
+
+
+ Gets a collection of property values.
+ A of property values.
+
+
+ Gets the collection of application settings providers used by the wrapper.
+ A containing all the objects used by the settings properties of the current settings wrapper.
+
+
+ Refreshes the application settings property values from persistent storage.
+
+
+ Restores the persisted application settings values to their corresponding default properties.
+ The configuration file could not be parsed.
+
+
+ Stores the current values of the application settings properties.
+
+
+ Occurs before the value of an application settings property is changed.
+
+
+
+ Gets or sets the settings key for the application settings group.
+ A containing the settings key for the current settings group.
+
+
+ Occurs after the application settings are retrieved from storage.
+
+
+
+ Occurs before values are saved to the data store.
+
+
+
+ Updates application settings to reflect a more recent installation of the application.
+ The configuration file could not be parsed.
+
+
+ Represents a grouping of related application settings sections within a configuration file. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a method for reading values of a particular type from the configuration.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the value for a specified key from the property and returns an object of the specified type containing the value from the configuration.
+ The key for which to get the value.
+ The type of the object to return.
+ The value of the specified key.
+ key is null. - or - type is null.
+ key does not exist in the <appSettings> configuration section. - or - The value in the <appSettings> configuration section for key is not of type type.
+
+
+ Provides configuration system support for the appSettings configuration section. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a configuration file that provides additional settings or overrides the settings specified in the appSettings element.
+ A configuration file that provides additional settings or overrides the settings specified in the appSettings element.
+
+
+ Gets a collection of key/value pairs that contains application settings.
+ A collection of key/value pairs that contains the application settings from the configuration file.
+
+
+ Provides dynamic validation of an object.
+
+
+ Initializes a new instance of the class.
+ The type of object that will be validated.
+ The used as the delegate.
+ type is null.
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+ true if the type parameter matches the type used as the first parameter when creating an instance of ; otherwise, false.
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Specifies a object to use for code validation. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the callback method.
+ The name of the method to call.
+
+
+ Gets or sets the type of the validator.
+ The of the current validator attribute instance.
+
+
+ Gets the validator instance.
+ The current instance.
+ The value of the property is null.
+ The property is not set to a public static void method with one object parameter.
+
+
+ Represents a group of user-scoped application settings in a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the collection of client settings for the section.
+ A containing all the client settings found in the current configuration section.
+
+
+ Represents a collection of string elements separated by commas. This class cannot be inherited.
+
+
+ Creates a new instance of the class.
+
+
+ Adds a string to the comma-delimited collection.
+ A string value.
+
+
+ Adds all the strings in a string array to the collection.
+ An array of strings to add to the collection.
+
+
+ Clears the collection.
+
+
+ Creates a copy of the collection.
+ A copy of the .
+
+
+ Adds a string element to the collection at the specified index.
+ The index in the collection at which the new element will be added.
+ The value of the new element to add to the collection.
+
+
+ Gets a value that specifies whether the collection has been modified.
+ true if the has been modified; otherwise, false.
+
+
+ Gets a value indicating whether the collection object is read-only.
+ true if the specified string element in the is read-only; otherwise, false.
+
+
+ Gets or sets a string element in the collection based on the index.
+ The index of the string element in the collection.
+ A string element in the collection.
+
+
+ Removes a string element from the collection.
+ The string to remove.
+
+
+ Sets the collection object to read-only.
+
+
+ Returns a string representation of the object.
+ A string representation of the object.
+
+
+ Converts a comma-delimited string value to and from a object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a object to a object.
+ The used for type conversions.
+ The used during conversion.
+ The comma-separated to convert.
+ A containing the converted value.
+
+
+ Converts a object to a object.
+ The used for type conversions.
+ The used during conversion.
+ The value to convert.
+ The conversion type.
+ The representing the converted value parameter, which is a .
+
+
+ Represents a configuration file that is applicable to a particular computer, application, or resource. This class cannot be inherited.
+
+
+ Gets the object configuration section that applies to this object.
+ An object representing the appSettings configuration section that applies to this object.
+
+
+ Specifies a function delegate that is used to transform assembly strings in configuration files.
+ A delegate that transforms type strings. The default value is null.
+
+
+ Gets a configuration-section object that applies to this object.
+ A configuration-section object representing the connectionStrings configuration section that applies to this object.
+
+
+ Gets the object for the object.
+ The object for the object.
+
+
+ Gets the physical path to the configuration file represented by this object.
+ The physical path to the configuration file represented by this object.
+
+
+ Returns the specified object.
+
+ The specified object.
+
+
+ Gets the specified object.
+
+ The specified.
+
+
+ Gets a value that indicates whether a file exists for the resource represented by this object.
+ true if there is a configuration file; otherwise, false.
+
+
+ Gets the locations defined within this object.
+ A containing the locations defined within this object.
+
+
+ Gets or sets a value indicating whether the configuration file has an XML namespace.
+ true if the configuration file has an XML namespace; otherwise, false.
+
+
+ Gets the root for this object.
+ The root section group for this object.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+
+
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+
+ The configuration file could not be written to. - or - The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+
+
+ filename is null or an empty string ("").
+
+
+ Gets a collection of the section groups defined by this configuration.
+ A collection representing the collection of section groups for this object.
+
+
+ Gets a collection of the sections defined by this object.
+ A collection of the sections defined by this object.
+
+
+ Specifies the targeted version of the .NET Framework when a version earlier than the current one is targeted.
+ The name of the targeted version of the .NET Framework. The default value is null, which indicates that the current version is targeted.
+
+
+ Specifies a function delegate that is used to transform type strings in configuration files.
+ A delegate that transforms type strings. The default value is null.
+
+
+ Specifies the locations within the configuration-file hierarchy that can set or override the properties contained within a object.
+
+
+ The can be defined anywhere.
+
+
+
+ The can be defined only in the Machine.config file.
+
+
+
+ The can be defined in either the Machine.config file, the machine-level Web.config file found in the same directory as Machine.config, or the top-level application Web.config file found in the virtual-directory root, but not in subdirectories of a virtual root.
+
+
+
+ The can be defined in either the Machine.config file or the machine-level Web.config file found in the same directory as Machine.config, but not in application Web.config files.
+
+
+
+ Specifies the locations within the configuration-file hierarchy that can set or override the properties contained within a object.
+
+
+ The can be defined only in the Machine.config file.
+
+
+
+ The can be defined either in the Machine.config file or in the Exe.config file in the client application directory. This is the default value.
+
+
+
+ The can be defined in the Machine.config file, in the Exe.config file in the client application directory, in the User.config file in the roaming user directory, or in the User.config file in the local user directory.
+
+
+
+ The can be defined in the Machine.config file, in the Exe.config file in the client application directory, or in the User.config file in the roaming user directory.
+
+
+
+ Declaratively instructs the .NET Framework to create an instance of a configuration element collection. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The type of the property collection to create.
+ itemType is null.
+
+
+ Gets or sets the name of the <add> configuration element.
+ The name that substitutes the standard name "add" for the configuration item.
+
+
+ Gets or sets the name for the <clear> configuration element.
+ The name that replaces the standard name "clear" for the configuration item.
+
+
+ Gets or sets the type of the attribute.
+ The type of the .
+
+
+ Gets the type of the collection element.
+ The type of the collection element.
+
+
+ Gets or sets the name for the <remove> configuration element.
+ The name that replaces the standard name "remove" for the configuration element.
+
+
+ The base class for the configuration converter types.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the conversion is allowed.
+ The object used for type conversions.
+ The to convert from.
+ true if the conversion is allowed; otherwise, false.
+
+
+ Determines whether the conversion is allowed.
+ The object used for type conversion.
+ The type to convert to.
+ true if the conversion is allowed; otherwise, false.
+
+
+ Represents a configuration element within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a reference to the top-level instance that represents the configuration hierarchy that the current instance belongs to.
+ The top-level instance that the current instance belongs to.
+
+
+ Reads XML from the configuration file.
+ The that reads from the configuration file.
+ true to serialize only the collection key properties; otherwise, false.
+ The element to read is locked. - or - An attribute of the current node is not recognized. - or - The lock status of the current node cannot be determined.
+
+
+ Gets an object that contains the non-customizable information and functionality of the object.
+ An that contains the non-customizable information and functionality of the .
+
+
+ Gets the object that represents the object itself.
+ The that represents the itself.
+
+
+ Compares the current instance to the specified object.
+ The object to compare with.
+ true if the object to compare with is equal to the current instance; otherwise, false. The default is false.
+
+
+ Gets the object for the object.
+ The for the .
+ The current element is not associated with a context.
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Returns the transformed version of the specified assembly name.
+ The name of the assembly.
+ The transformed version of the assembly name. If no transformer is available, the assemblyName parameter value is returned unchanged. The property is null if no transformer is available.
+
+
+ Returns the transformed version of the specified type name.
+ The name of the type.
+ The transformed version of the specified type name. If no transformer is available, the typeName parameter value is returned unchanged. The property is null if no transformer is available.
+
+
+ Gets a value that indicates whether the property is null.
+ false if the property is null; otherwise, true.
+
+
+ Sets the object to its initial state.
+
+
+ Used to initialize a default set of values for the object.
+
+
+ Indicates whether this configuration element has been modified since it was last saved or loaded, when implemented in a derived class.
+ true if the element has been modified; otherwise, false.
+
+
+ Gets a value indicating whether the object is read-only.
+ true if the object is read-only; otherwise, false.
+
+
+ Gets or sets a property or attribute of this configuration element.
+
+ The specified property, attribute, or child element.
+ property is null or does not exist within the element.
+ property is read only or locked.
+
+
+ Gets or sets a property, attribute, or child element of this configuration element.
+
+ The specified property, attribute, or child element
+ prop is read-only or locked.
+
+
+ Adds the invalid-property errors in this object, and in all subelements, to the passed list.
+
+
+
+ Gets the collection of locked attributes.
+ The of locked attributes (properties) for the element.
+
+
+ Gets the collection of locked elements.
+ The of locked elements.
+
+
+ Gets the collection of locked attributes
+ The of locked attributes (properties) for the element.
+
+
+ Gets the collection of locked elements.
+ The of locked elements.
+
+
+ Gets or sets a value indicating whether the element is locked.
+ true if the element is locked; otherwise, false. The default is false.
+ The element has already been locked at a higher configuration level.
+
+
+ Gets a value indicating whether an unknown attribute is encountered during deserialization.
+ The name of the unrecognized attribute.
+ The value of the unrecognized attribute.
+ true when an unknown attribute is encountered while deserializing; otherwise, false.
+
+
+ Gets a value indicating whether an unknown element is encountered during deserialization.
+
+ The being used for deserialization.
+ true when an unknown element is encountered while deserializing; otherwise, false.
+ The element identified by elementName is locked. - or - One or more of the element's attributes is locked. - or - elementName is unrecognized, or the element has an unrecognized attribute. - or - The element has a Boolean attribute with an invalid value. - or - An attempt was made to deserialize a property more than once. - or - An attempt was made to deserialize a property that is not a valid member of the element. - or - The element cannot contain a CDATA or text element.
+
+
+ Throws an exception when a required property is not found.
+ The name of the required attribute that was not found.
+ None.
+ In all cases.
+
+
+ Called after deserialization.
+
+
+ Called before serialization.
+ The that will be used to serialize the .
+
+
+ Gets the collection of properties.
+ The of properties for the element.
+
+
+ Resets the internal state of the object, including the locks and the properties collections.
+ The parent node of the configuration element.
+
+
+ Resets the value of the method to false when implemented in a derived class.
+
+
+ Writes the contents of this configuration element to the configuration file when implemented in a derived class.
+ The that writes to the configuration file.
+ true to serialize only the collection key properties; otherwise, false.
+ true if any data was actually serialized; otherwise, false.
+ The current attribute is locked at a higher configuration level.
+
+
+ Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.
+ The that writes to the configuration file.
+ The name of the to be written.
+ true if writing was successful; otherwise, false.
+ The element has multiple child elements.
+
+
+ Sets a property to the specified value.
+ The element property to set.
+ The value to assign to the property.
+ true if the locks on the property should be ignored; otherwise, false.
+ Occurs if the element is read-only or ignoreLocks is true but the locks cannot be ignored.
+
+
+ Sets the property for the object and all subelements.
+
+
+ Modifies the object to remove all values that should not be saved.
+
+
+
+
+
+ Represents a configuration element containing a collection of child elements.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ The comparer to use.
+ comparer is null.
+
+
+ Gets or sets the name of the to associate with the add operation in the when overridden in a derived class.
+ The name of the element.
+ The selected value starts with the reserved prefix "config" or "lock".
+
+
+ Adds a configuration element to the .
+ The to add.
+
+
+ Adds a configuration element to the configuration element collection.
+ The to add.
+ true to throw an exception if the specified is already contained in the ; otherwise, false.
+ The to add already exists in the and the throwIfExists parameter is true.
+
+
+ Adds a configuration element to the configuration element collection.
+ The index location at which to add the specified .
+ The to add.
+
+
+ Removes all configuration element objects from the collection.
+ The configuration is read-only. - or - A collection item has been locked in a higher-level configuration.
+
+
+ Gets the configuration element at the specified index location.
+ The index location of the to return.
+ The at the specified index.
+ index is less than 0. - or - There is no at the specified index.
+
+
+ Returns the configuration element with the specified key.
+ The key of the element to return.
+ The with the specified key; otherwise, null.
+
+
+ Returns an array of the keys for all of the configuration elements contained in the .
+ An array that contains the keys for all of the objects contained in the .
+
+
+ Gets the key for the at the specified index location.
+ The index location for the .
+ The key for the specified .
+ index is less than 0. - or - There is no at the specified index.
+
+
+ Indicates the index of the specified .
+ The for the specified index location.
+ The index of the specified ; otherwise, -1.
+
+
+ Indicates whether the with the specified key has been removed from the .
+ The key of the element to check.
+ true if the with the specified key has been removed; otherwise, false. The default is false.
+
+
+ Removes a from the collection.
+ The key of the to remove.
+ No with the specified key exists in the collection, the element has already been removed, or the element cannot be removed because the value of its is not .
+
+
+ Removes the at the specified index location.
+ The index location of the to remove.
+ The configuration is read-only. - or - index is less than 0 or greater than the number of objects in the collection. - or - The object has already been removed. - or - The value of the object has been locked at a higher level. - or - The object was inherited. - or - The value of the object's is not or .
+
+
+ Gets or sets the name for the to associate with the clear operation in the when overridden in a derived class.
+ The name of the element.
+ The selected value starts with the reserved prefix "config" or "lock".
+
+
+ Gets the type of the .
+ The of this collection.
+
+
+ Copies the contents of the to an array.
+ Array to which to copy the contents of the .
+ Index location at which to begin copying.
+
+
+ Gets the number of elements in the collection.
+ The number of elements in the collection.
+
+
+ Creates a new when overridden in a derived class.
+ The name of the to create.
+ A new with a specified name.
+
+
+ When overridden in a derived class, creates a new .
+ A newly created .
+
+
+ Gets the name used to identify this collection of elements in the configuration file when overridden in a derived class.
+ The name of the collection; otherwise, an empty string. The default is an empty string.
+
+
+ Gets or sets a value that specifies whether the collection has been cleared.
+ true if the collection has been cleared; otherwise, false. The default is false.
+ The configuration is read-only.
+
+
+ Compares the to the specified object.
+ The object to compare.
+ true if the object to compare with is equal to the current instance; otherwise, false. The default is false.
+
+
+ Gets the element key for a specified configuration element when overridden in a derived class.
+ The to return the key for.
+ An that acts as the key for the specified .
+
+
+ Gets an which is used to iterate through the .
+ An which is used to iterate through the .
+
+
+ Gets a unique value representing the instance.
+ A unique value representing the current instance.
+
+
+ Indicates whether the specified exists in the .
+ The name of the element to verify.
+ true if the element exists in the collection; otherwise, false. The default is false.
+
+
+ Indicates whether the specified can be removed from the .
+ The element to check.
+ true if the specified can be removed from this ; otherwise, false. The default is true.
+
+
+ Indicates whether this has been modified since it was last saved or loaded when overridden in a derived class.
+ true if any contained element has been modified; otherwise, false
+
+
+ Indicates whether the object is read only.
+ true if the object is read only; otherwise, false.
+
+
+ Gets a value indicating whether access to the collection is synchronized.
+ true if access to the is synchronized; otherwise, false.
+
+
+ Causes the configuration system to throw an exception.
+ The name of the unrecognized element.
+ An input stream that reads XML from the configuration file.
+ true if the unrecognized element was deserialized successfully; otherwise, false. The default is false.
+ The element specified in elementName is the <clear> element.
+ elementName starts with the reserved prefix "config" or "lock".
+
+
+ Gets or sets the name of the to associate with the remove operation in the when overridden in a derived class.
+ The name of the element.
+ The selected value starts with the reserved prefix "config" or "lock".
+
+
+ Resets the to its unmodified state when overridden in a derived class.
+ The representing the collection parent element, if any; otherwise, null.
+
+
+ Resets the value of the property to false when overridden in a derived class.
+
+
+ Writes the configuration data to an XML element in the configuration file when overridden in a derived class.
+ Output stream that writes XML to the configuration file.
+ true to serialize the collection key; otherwise, false.
+ true if the was written to the configuration file successfully.
+ One of the elements in the collection was added or replaced and starts with the reserved prefix "config" or "lock".
+
+
+ Sets the property for the object and for all sub-elements.
+
+
+ Gets an object used to synchronize access to the .
+ An object used to synchronize access to the .
+
+
+ Gets a value indicating whether an attempt to add a duplicate to the will cause an exception to be thrown.
+ true if an attempt to add a duplicate to this will cause an exception to be thrown; otherwise, false.
+
+
+ Reverses the effect of merging configuration information from different levels of the configuration hierarchy
+ A object at the current level containing a merged view of the properties.
+ The parent object of the current element, or null if this is the top level.
+
+
+
+ Copies the to an array.
+ Array to which to copy this .
+ Index location at which to begin copying.
+
+
+ Specifies the type of a object.
+
+
+ The default type of . Collections of this type contain elements that can be merged across a hierarchy of configuration files. At any particular level within such a hierarchy, add, remove, and clear directives are used to modify any inherited properties and specify new ones.
+
+
+
+ Same as , except that this type causes the object to sort its contents such that inherited elements are listed last.
+
+
+
+ Collections of this type contain elements that apply to the level at which they are specified, and to all child levels. A child level cannot modify the properties specified by a parent element of this type.
+
+
+
+ Same as , except that this type causes the object to sort its contents such that inherited elements are listed last.
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/useSharedDesignerContext.txt b/packages/System.Configuration.ConfigurationManager.4.4.1/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Configuration.ConfigurationManager.4.4.1/version.txt b/packages/System.Configuration.ConfigurationManager.4.4.1/version.txt
new file mode 100644
index 0000000..b8b4cab
--- /dev/null
+++ b/packages/System.Configuration.ConfigurationManager.4.4.1/version.txt
@@ -0,0 +1 @@
+0f6d0a02c9cc2e766dd543ff24135f16e9a971e4
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/.signature.p7s b/packages/System.Diagnostics.DiagnosticSource.7.0.2/.signature.p7s
new file mode 100644
index 0000000..bfc95ae
Binary files /dev/null and b/packages/System.Diagnostics.DiagnosticSource.7.0.2/.signature.p7s differ
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/Icon.png b/packages/System.Diagnostics.DiagnosticSource.7.0.2/Icon.png
new file mode 100644
index 0000000..a0f1fdb
Binary files /dev/null and b/packages/System.Diagnostics.DiagnosticSource.7.0.2/Icon.png differ
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/LICENSE.TXT b/packages/System.Diagnostics.DiagnosticSource.7.0.2/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/LICENSE.TXT
@@ -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.
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/System.Diagnostics.DiagnosticSource.7.0.2.nupkg b/packages/System.Diagnostics.DiagnosticSource.7.0.2/System.Diagnostics.DiagnosticSource.7.0.2.nupkg
new file mode 100644
index 0000000..935a7d3
Binary files /dev/null and b/packages/System.Diagnostics.DiagnosticSource.7.0.2/System.Diagnostics.DiagnosticSource.7.0.2.nupkg differ
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/THIRD-PARTY-NOTICES.TXT b/packages/System.Diagnostics.DiagnosticSource.7.0.2/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..c682d59
--- /dev/null
+++ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,1145 @@
+.NET Runtime uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Runtime 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 ASP.NET
+-------------------------------
+
+Copyright (c) .NET Foundation. All rights reserved.
+Licensed under the Apache License, Version 2.0.
+
+Available at
+https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt
+
+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
+-------------------------------
+
+https://www.unicode.org/license.html
+
+Copyright © 1991-2022 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in https://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
+https://zlib.net/zlib_license.html
+
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.2.12, March 27th, 2022
+
+ Copyright (C) 1995-2022 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."
+
+License notice for Json.NET
+-------------------------------
+
+https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+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 vectorized base64 encoding / decoding
+--------------------------------------------------------
+
+Copyright (c) 2005-2007, Nick Galbreath
+Copyright (c) 2013-2017, Alfred Klomp
+Copyright (c) 2015-2017, Wojciech Mula
+Copyright (c) 2016-2017, Matthieu Darbois
+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.
+
+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 RFC 3492
+---------------------------
+
+The punycode implementation is based on the sample code in RFC 3492
+
+Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any
+kind, provided that the above copyright notice and this paragraph are
+included on all such copies and derivative works. However, this
+document itself may not be modified in any way, such as by removing
+the copyright notice or references to the Internet Society or other
+Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for
+copyrights defined in the Internet Standards process must be
+followed, or as required to translate it into languages other than
+English.
+
+The limited permissions granted above are perpetual and will not be
+revoked by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an
+"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+License notice for Algorithm from Internet Draft document "UUIDs and GUIDs"
+---------------------------------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, or Digital Equipment Corporation be used in advertising
+or publicity pertaining to distribution of the software without
+specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment
+Corporation makes any representations about the suitability of
+this software for any purpose.
+
+Copyright(C) The Internet Society 1997. All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others,
+and derivative works that comment on or otherwise explain it or assist in
+its implementation may be prepared, copied, published and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this paragraph are included on all such copies and
+derivative works.However, this document itself may not be modified in any
+way, such as by removing the copyright notice or references to the Internet
+Society or other Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for copyrights
+defined in the Internet Standards process must be followed, or as required
+to translate it into languages other than English.
+
+The limited permissions granted above are perpetual and will not be revoked
+by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+License notice for Algorithm from RFC 4122 -
+A Universally Unique IDentifier (UUID) URN Namespace
+----------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+Copyright (c) 1998 Microsoft.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, Microsoft, or Digital Equipment Corporation be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+Equipment Corporation makes any representations about the
+suitability of this software for any purpose."
+
+License notice for The LLVM Compiler Infrastructure
+---------------------------------------------------
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+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:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+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
+CONTRIBUTORS 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 WITH THE
+SOFTWARE.
+
+License notice for Bob Jenkins
+------------------------------
+
+By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+code any way you wish, private, educational, or commercial. It's free.
+
+License notice for Greg Parker
+------------------------------
+
+Greg Parker gparker@cs.stanford.edu December 2000
+This code is in the public domain and may be copied or modified without
+permission.
+
+License notice for libunwind based code
+----------------------------------------
+
+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 Printing Floating-Point Numbers (Dragon4)
+------------------------------------------------------------
+
+/******************************************************************************
+ Copyright (c) 2014 Ryan Juckett
+ http://www.ryanjuckett.com/
+
+ 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.
+******************************************************************************/
+
+License notice for Printing Floating-point Numbers (Grisu3)
+-----------------------------------------------------------
+
+Copyright 2012 the V8 project 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.
+
+License notice for xxHash
+-------------------------
+
+xxHash Library
+Copyright (c) 2012-2014, Yann Collet
+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.
+
+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 Berkeley SoftFloat Release 3e
+------------------------------------------------
+
+https://github.com/ucb-bar/berkeley-softfloat-3
+https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt
+
+License for Berkeley SoftFloat Release 3e
+
+John R. Hauser
+2018 January 20
+
+The following applies to the whole of SoftFloat Release 3e as well as to
+each source file individually.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California. 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.
+
+ 3. Neither the name of the University 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 REGENTS 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 REGENTS 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 xoshiro RNGs
+--------------------------------
+
+Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org)
+
+To the extent possible under law, the author has dedicated all copyright
+and related and neighboring rights to this software to the public domain
+worldwide. This software is distributed without any warranty.
+
+See .
+
+License for fastmod (https://github.com/lemire/fastmod) and ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data)
+--------------------------------------
+
+ Copyright 2018 Daniel Lemire
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+License for sse4-strstr (https://github.com/WojciechMula/sse4-strstr)
+--------------------------------------
+
+ Copyright (c) 2008-2016, Wojciech Muła
+ 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 The C++ REST SDK
+-----------------------------------
+
+C++ REST SDK
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+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.
+
+License notice for MessagePack-CSharp
+-------------------------------------
+
+MessagePack for C#
+
+MIT License
+
+Copyright (c) 2017 Yoshifumi Kawai
+
+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 lz4net
+-------------------------------------
+
+lz4net
+
+Copyright (c) 2013-2017, Milosz Krajewski
+
+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.
+
+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 Nerdbank.Streams
+-----------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) Andrew Arnott
+
+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 RapidJSON
+----------------------------
+
+Tencent is pleased to support the open source community by making RapidJSON available.
+
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
+
+Licensed under the MIT License (the "License"); you may not use this file except
+in compliance with the License. You may obtain a copy of the License at
+
+http://opensource.org/licenses/MIT
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+License notice for DirectX Math Library
+---------------------------------------
+
+https://github.com/microsoft/DirectXMath/blob/master/LICENSE
+
+ The MIT License (MIT)
+
+Copyright (c) 2011-2020 Microsoft Corp
+
+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 ldap4net
+---------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2018 Alexander Chermyanin
+
+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 vectorized sorting code
+------------------------------------------
+
+MIT License
+
+Copyright (c) 2020 Dan Shechter
+
+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 musl
+-----------------------
+
+musl as a whole is licensed under the following standard MIT license:
+
+Copyright © 2005-2020 Rich Felker, et al.
+
+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 "Faster Unsigned Division by Constants"
+------------------------------
+
+Reference implementations of computing and using the "magic number" approach to dividing
+by constants, including codegen instructions. The unsigned division incorporates the
+"round down" optimization per ridiculous_fish.
+
+This is free and unencumbered software. Any copyright is dedicated to the Public Domain.
+
+
+License notice for mimalloc
+-----------------------------------
+
+MIT License
+
+Copyright (c) 2019 Microsoft Corporation, Daan Leijen
+
+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 for remote stack unwind (https://github.com/llvm/llvm-project/blob/main/lldb/source/Symbol/CompactUnwindInfo.cpp)
+--------------------------------------
+
+Copyright 2019 LLVM Project
+
+Licensed under the Apache License, Version 2.0 (the "License") with LLVM Exceptions;
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+https://llvm.org/LICENSE.txt
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+License notice for Apple header files
+-------------------------------------
+
+Copyright (c) 1980, 1986, 1993
+ The Regents of the University of California. 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.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+4. Neither the name of the University 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 REGENTS 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 REGENTS 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 JavaScript queues
+-------------------------------------
+
+CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER.
+
+Statement of Purpose
+The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work").
+Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.
+For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following:
+the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;
+moral rights retained by the original author(s) and/or performer(s);
+publicity and privacy rights pertaining to a person's image or likeness depicted in a Work;
+rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below;
+rights protecting the extraction, dissemination, use and reuse of data in a Work;
+database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and
+other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.
+2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose.
+3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose.
+4. Limitations and Disclaimers.
+a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.
+b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.
+c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.
+d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.
+
+
+License notice for FastFloat algorithm
+-------------------------------------
+MIT License
+Copyright (c) 2021 csFastFloat 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.
+
+License notice for MsQuic
+--------------------------------------
+
+Copyright (c) Microsoft Corporation.
+Licensed under the MIT License.
+
+Available at
+https://github.com/microsoft/msquic/blob/main/LICENSE
+
+License notice for m-ou-se/floatconv
+-------------------------------
+
+Copyright (c) 2020 Mara Bos
+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 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.
+
+License notice for code from The Practice of Programming
+-------------------------------
+
+Copyright (C) 1999 Lucent Technologies
+
+Excerpted from 'The Practice of Programming
+by Brian W. Kernighan and Rob Pike
+
+You may use this code for any purpose, as long as you leave the copyright notice and book citation attached.
+
+Notice for Euclidean Affine Functions and Applications to Calendar
+Algorithms
+-------------------------------
+
+Aspects of Date/Time processing based on algorithm described in "Euclidean Affine Functions and Applications to Calendar
+Algorithms", Cassio Neri and Lorenz Schneider. https://arxiv.org/pdf/2102.06959.pdf
+
+License notice for amd/aocl-libm-ose
+-------------------------------
+
+Copyright (C) 2008-2020 Advanced Micro Devices, 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:
+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.
+3. Neither the name of the copyright holder 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 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.
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets b/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets
new file mode 100644
index 0000000..d6191fb
--- /dev/null
+++ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/net462/_._ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/net462/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/net6.0/_._ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/net6.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets b/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets
new file mode 100644
index 0000000..e17c907
--- /dev/null
+++ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net462/System.Diagnostics.DiagnosticSource.dll b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net462/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000..1786b54
Binary files /dev/null and b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net462/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net462/System.Diagnostics.DiagnosticSource.xml b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net462/System.Diagnostics.DiagnosticSource.xml
new file mode 100644
index 0000000..b541be3
--- /dev/null
+++ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net462/System.Diagnostics.DiagnosticSource.xml
@@ -0,0 +1,1723 @@
+
+
+
+ System.Diagnostics.DiagnosticSource
+
+
+
+ Represents an operation with context to be used for logging.
+
+
+ Occurs when the value changes.
+
+
+ Initializes a new instance of the class.
+ The name of the operation.
+
+
+ Updates the to have a new baggage item with the specified key and value.
+ The baggage key.
+ The baggage value.
+
+ for convenient chaining.
+
+
+ Adds the specified activity event to the events list.
+ The activity event to add.
+
+ for convenient chaining.
+
+
+ Updates the activity to have a tag with an additional and .
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Updates the to have a new tag with the provided and .
+ The tag key.
+ The tag value.
+
+ for convenient chaining.
+
+
+ Stops the activity if it is already started and notifies any event listeners. Nothing will happen otherwise.
+
+
+ When overriden by a derived type, this method releases any allocated resources.
+
+ if the method is being called from the finalizer; if calling from user code.
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the tags attached to this Activity object.
+
+ .
+
+
+ Returns the value of a key-value pair added to the activity with .
+ The baggage key.
+ The value of the key-value-pair item if it exists, or if it does not exist.
+
+
+ Returns the object mapped to the specified property name.
+ The name associated to the object.
+ The object mapped to the property name, if one is found; otherwise, .
+
+
+ Returns the value of the Activity tag mapped to the input key/>.
+ Returns if that key does not exist.
+ The tag key string.
+ The tag value mapped to the input key.
+
+
+ Add or update the Activity baggage with the input key and value.
+ If the input value is - if the collection has any baggage with the same key, then this baggage will get removed from the collection.
+ - otherwise, nothing will happen and the collection will not change.
+ If the input value is not - if the collection has any baggage with the same key, then the value mapped to this key will get updated with the new input value.
+ - otherwise, the key and value will get added as a new baggage to the collection.
+ Baggage item will be updated/removed only if it was originaly added to the current activity. Items inherited from the parents will not be changed/removed, new item would be added to current activity baggage instead.
+ The baggage key name
+ The baggage value mapped to the input key
+
+ for convenient chaining.
+
+
+ Attaches any custom object to this activity. If the specified was previously associated with another object, the property will be updated to be associated with the new instead. It is recommended to use a unique property name to avoid conflicts with anyone using the same value.
+ The name to associate the value with.
+ The object to attach and map to the property name.
+
+
+ Updates the to set its as the difference between and the specified stop time.
+ The UTC stop time.
+
+ for convenient chaining.
+
+
+ Sets the ID format on this before it is started.
+ One of the enumeration values that specifies the format of the property.
+
+ for convenient chaining.
+
+
+ Sets the parent ID using the W3C convention of a TraceId and a SpanId.
+ The parent activity's TraceId.
+ The parent activity's SpanId.
+ One of the enumeration values that specifies flags defined by the W3C standard that are associated with an activity.
+
+ for convenient chaining.
+
+
+ Updates this to indicate that the with an ID of caused this .
+ The ID of the parent operation.
+
+ for convenient chaining.
+
+
+ Sets the start time of this .
+ The start time in UTC.
+
+ for convenient chaining.
+
+
+ Sets the status code and description on the current activity object.
+ The status code
+ The error status description
+
+ for convenient chaining.
+
+
+ Adds or update the activity tag with the input key and value.
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Starts the activity.
+
+ for convenient chaining.
+
+
+ Stops the activity.
+
+
+ Gets or sets the flags (defined by the W3C ID specification) associated with the activity.
+ the flags associated with the activity.
+
+
+ Gets a collection of key/value pairs that represents information that is passed to children of this .
+ Information that's passed to children of this .
+
+
+ Gets the context of the activity. Context becomes valid only if the activity has been started.
+ The context of the activity, if the activity has been started; otherwise, returns the default context.
+
+
+ Gets or sets the current operation () for the current thread. This flows across async calls.
+ The current operation for the current thread.
+
+
+ Gets or sets the default ID format for the .
+
+
+ Gets or sets the display name of the activity.
+ A string that represents the activity display name.
+
+
+ Gets the duration of the operation.
+ The delta between and the end time if the has ended ( or was called), or if the has not ended and was not called.
+
+
+ Gets the list of all the activity events attached to this activity.
+ An enumeration of activity events attached to this activity. If the activity has no events, returns an empty enumeration.
+
+
+ Gets or sets a value that detrmines if the is always used to define the default ID format.
+
+ to always use the ; otherwise, .
+
+
+ Gets a value that indicates whether the parent context was created from remote propagation.
+
+
+ Gets an identifier that is specific to a particular request.
+ The activity ID.
+
+
+ Gets the format for the .
+ The format for the .
+
+
+ Gets or sets a value that indicates whether this activity should be populated with all the propagation information, as well as all the other properties, such as links, tags, and events.
+
+ if the activity should be populated; otherwise.
+
+
+ Gets a value that indicates whether this object is stopped or not.
+
+
+ Gets the relationship between the activity, its parents, and its children in a trace.
+ One of the enumeration values that indicate relationship between the activity, its parents, and its children in a trace.
+
+
+ Gets the list of all the activity links attached to this activity.
+ An enumeration of activity links attached to this activity. If the activity has no links, returns an empty enumeration.
+
+
+ Gets the operation name.
+ The name of the operation.
+
+
+ Gets the parent that created this activity.
+ The parent of this , if it is from the same process, or if this instance has no parent (it is a root activity) or if the parent is from outside the process.
+
+
+ Gets the ID of this activity's parent.
+ The parent ID, if one exists, or if it does not.
+
+
+ Gets the parent's .
+ The parent's .
+
+
+ Gets a value that indicates whether the W3CIdFlags.Recorded flag is set.
+
+ if the W3CIdFlags.Recorded flag is set; otherwise, .
+
+
+ Gets the root ID of this .
+ The root ID, or if the current instance has either a or an .
+
+
+ Gets the activity source associated with this activity.
+
+
+ Gets the SPAN part of the .
+ The ID for the SPAN part of , if the has the W3C format; otherwise, a zero .
+
+
+ Gets the time when the operation started.
+ The UTC time that the operation started.
+
+
+ Gets status code of the current activity object.
+
+
+ Gets the status description of the current activity object.
+
+
+ Gets the list of tags that represent information to log along with the activity. This information is not passed on to the children of this activity.
+ A key-value pair enumeration of tags and objects.
+
+
+ Gets a collection of key/value pairs that represent information that will be logged along with the to the logging system.
+ Information that will be logged along with the to the logging system.
+
+
+ Gets the TraceId part of the .
+ The ID for the TraceId part of the , if the ID has the W3C format; otherwise, a zero TraceId.
+
+
+ When starting an Activity which does not have a parent context, the Trace Id will automatically be generated using random numbers.
+ TraceIdGenerator can be used to override the runtime's default Trace Id generation algorithm.
+
+
+ Gets or sets the W3C header.
+ The W3C header.
+
+
+ Enumerates the data stored on an object.
+ Type being enumerated.
+
+
+ Returns an enumerator that iterates through the data stored on an Activity object.
+
+ .
+
+
+ Advances the enumerator to the next element of the data.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+ Provides data for the event.
+
+
+ Gets the object after the event.
+
+
+ Gets the object before the event.
+
+
+ A representation that conforms to the W3C TraceContext specification. It contains two identifiers: a TraceId and a SpanId, along with a set of common TraceFlags and system-specific TraceState values.
+
+
+ Construct a new activity context instance using the specified arguments.
+ A trace identifier.
+ A span identifier.
+ Contain details about the trace.
+ Carries system-specific configuration data.
+ Indicates if the context is propagated from a remote parent.
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Determines whether this instance and a specified object have the same value.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Parses a W3C trace context headers to an object.
+ The W3C trace parent header.
+ The trace state.
+ The trace parent is invalid.
+ The object created from the parsing operation.
+
+
+ Tries to parse the W3C trace context headers to the object.
+ The W3C trace parent header.
+ The W3C trace state.
+
+ to propagate the context from the remote parent; otherwise, .
+ When this method returns, contains the object created from the parsing operation.
+
+ if the operation succeeds; otherwise.
+
+
+ Tries to parse the W3C trace context headers to an object.
+ The W3C trace parent header.
+ The W3C trace state.
+ When this method returns , the object created from the parsing operation.
+
+ if the parsing was successful; otherwise.
+
+
+ Indicates if the activity context was propagated from a remote parent.
+
+ if it was propagated from a remote parent; otherwise.
+
+
+ The Id of the request as known by the caller.
+ The Span Id in the context.
+
+
+ The flags defined by the W3C standard along with the ID for the activity.
+ The context tracing flags.
+
+
+ The trace identifier.
+ The tracing identifier in the context.
+
+
+ Holds the W3C 'tracestate' header.
+ A string representing the W3C 'tracestate' header.
+
+
+ Encapsulates all the information that is sent to the activity listener, to make decisions about the creation of the activity instance, as well as its state.
+
+The possible generic type parameters are or .
+ The type of the property. Should be either or .
+
+
+ Gets the activity kind which the activity will be created with.
+ One of the enumeration values that represent an activity kind.
+
+
+ Gets the enumeration of activity links that the activity will be created with.
+ An enumeration of activity links.
+
+
+ Gets the name to use as OperationName of the activity that will get created.
+ A string representing the activity name.
+
+
+ Gets the parent context or parent Id that the activity will get created with.
+ The parent of the activity, represented either as a or as an .
+
+
+ Gets the collection that is used to add more tags during the sampling process. The added tags are also added to the created Activity if it is decided that it should be created by the callbacks.
+ The Activity tags collection.
+
+
+ Gets the activity source that creates the activity.
+ An activity source object.
+
+
+ Gets the tags that the activity will be created with.
+ A key-value pair enumeration of tags associated with the activity.
+
+
+ Gets the trace Id to use in the Activity object if it is decided that it should be created by callbacks.
+ The trace Id.
+
+
+ Gets or initializes the trace state to use when creating the Activity.
+
+
+ Represents an event containing a name and a timestamp, as well as an optional list of tags.
+
+
+ Initializes a new activity event instance using the specified name and the current time as the event timestamp.
+ The event name.
+
+
+ Initializes a new activity event instance using the specified name, timestamp and tags.
+ The event name.
+ The event timestamp. Timestamp must only be used for the events that happened in the past, not at the moment of this call.
+ The event tags.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Gets the activity event name.
+ A string representing the activity event name.
+
+
+ Gets the collection of tags associated with the event.
+ A key-value pair enumeration containing the tags associated with the event.
+
+
+ Gets the activity event timestamp.
+ A datetime offset representing the activity event timestamp.
+
+
+ Specifies the format of the property.
+
+
+ The hierarchical format.
+
+
+ An unknown format.
+
+
+ The W3C format.
+
+
+ Describes the relationship between the activity, its parents and its children in a trace.
+
+
+ Outgoing request to the external component.
+
+
+ Output received from an external component.
+
+
+ Internal operation within an application, as opposed to operations with remote parents or children. This is the default value.
+
+
+ Output provided to external components.
+
+
+ Requests incoming from external component.
+
+
+ Activities may be linked to zero or more activity context instances that are causally related.
+
+Activity links can point to activity contexts inside a single trace or across different traces.
+
+Activity links can be used to represent batched operations where an activity was initiated by multiple initiating activities, each representing a single incoming item being processed in the batch.
+
+
+ Constructs a new activity link, which can be linked to an activity.
+ The trace activity context.
+ The key-value pair list of tags associated to the activity context.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Indicates whether the current activity link is equal to another activity link.
+ The activity link to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Indicates whether the current activity link is equal to another object.
+ The object to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Retrieves the activity context inside this activity link.
+
+
+ Retrieves the key-value pair enumeration of tags attached to the activity context.
+ An enumeration of tags attached to the activity context.
+
+
+ Allows listening to the start and stop activity events and gives the opportunity to decide creating an activity for sampling scenarios.
+
+
+ Construct a new activity listener object to start listeneing to the activity events.
+
+
+ Unregisters this activity listener object from listening to activity events.
+
+
+ Gets or sets the callback used to listen to the activity start event.
+ An activity callback instance used to listen to the activity start event.
+
+
+ Gets or sets the callback used to listen to the activity stop event.
+ An activity callback instance used to listen to the activity stop event.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that allows deciding if activity object events that were created using the activity source object should be listened or not.
+
+ to listen events; otherwise.
+
+
+ Enumeration values used by to indicate the amount of data to collect for the related . Requesting more data causes a greater performance overhead.
+
+
+ The activity object should be populated with all the propagation information and also all other properties such as Links, Tags, and Events. Using this value causes to return .
+
+
+ The activity object should be populated the same as the case. Additionally, Activity.Recorded is set to . For activities using the W3C trace ids, this sets a flag bit in the ID that will be propagated downstream requesting that the trace is recorded everywhere.
+
+
+ The activity object does not need to be created.
+
+
+ The activity object needs to be created. It will have a Name, a Source, an Id and Baggage. Other properties are unnecessary and will be ignored by this listener.
+
+
+ Provides APIs to create and start objects and to register objects to listen to the events.
+
+
+ Constructs an activity source object with the specified .
+ The name of the activity source object.
+ The version of the component publishing the tracing info.
+
+
+ Adds a listener to the activity starting and stopping events.
+ The activity listener object to use for listening to the activity events.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity
+ The
+ The created object or if there is no any event listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ If the Activity object is created, it will not automatically start. Callers will need to call to start it.
+ The operation name of the Activity.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity.
+ The
+ The parent Id to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Disposes the activity source object, removes the current instance from the global list, and empties the listeners list.
+
+
+ Checks if there are any listeners for this activity source.
+
+ if there is a listener registered for this activity source; otherwise, .
+
+
+ Creates and starts a new object if there is any listener to the Activity events, returns otherwise.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The optional start timestamp to set on the created Activity object.
+ The operation name of the Activity.
+ The created object or if there is no any listener.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name and activity kind.
+ The operation name of the activity.
+ The activity kind.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent activity context, tags, optional activity link and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent object to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent Id, tags, optional activity links and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent Id to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Returns the activity source name.
+ A string that represents the activity source name.
+
+
+ Returns the activity source version.
+ A string that represents the activity source version.
+
+
+ Represents a formatted based on a W3C standard.
+
+
+ Copies the 8 bytes of the current to a specified span.
+ The span to which the 8 bytes of the SpanID are to be copied.
+
+
+ Creates a new value from a read-only span of eight bytes.
+ A read-only span of eight bytes.
+
+ does not contain eight bytes.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of 16 hexadecimal characters.
+ A span that contains 16 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new span ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new span ID.
+
+
+ Determines whether this instance and the specified instance have the same value.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ the current instance and a specified object, which also must be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the SpanId.
+ The hash code of the SpanId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is the same as the SpanId of ; otherwise, .
+
+
+ Determine whether two specified instances have unequal values.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is different from the SpanId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Define the status code of the Activity which indicate the status of the instrumented operation.
+
+
+ Status code indicating an error is encountered during the operation.
+
+
+ Status code indicating the operation has been validated and completed successfully.
+
+
+ Unset status code is the default value indicating the status code is not initialized.
+
+
+ ActivityTagsCollection is a collection class used to store tracing tags.
+
+This collection will be used with classes like and .
+
+This collection behaves as follows:
+- The collection items will be ordered according to how they are added.
+- Don't allow duplication of items with the same key.
+- When using the indexer to store an item in the collection:
+ - If the item has a key that previously existed in the collection and the value is , the collection item matching the key will be removed from the collection.
+ - If the item has a key that previously existed in the collection and the value is not , the new item value will replace the old value stored in the collection.
+ - Otherwise, the item will be added to the collection.
+- Add method will add a new item to the collection if an item doesn't already exist with the same key. Otherwise, it will throw an exception.
+
+
+ Create a new instance of the collection.
+
+
+ Create a new instance of the collection and store the input list items in the collection.
+ Initial list to store in the collection.
+
+
+ Adds an item to the collection.
+ Key and value pair of the tag to add to the collection.
+
+ already exists in the list.
+
+ is .
+
+
+ Adds a tag with the provided key and value to the collection. This collection doesn't allow adding two tags with the same key.
+ The tag key.
+ The tag value.
+
+
+ Removes all items from the collection.
+
+
+ Determines whether the contains a specific value.
+ The object to locate in the .
+
+ if is found in the ; otherwise, .
+
+
+ Determines whether the collection contains an element with the specified key.
+ The key to locate in the .
+
+ if the collection contains tag with that key. otherwise.
+
+
+ Copies the elements of the collection to an array, starting at a particular array index.
+ The array that is the destination of the elements copied from collection.
+ The zero-based index in array at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator for the .
+
+
+ Removes the first occurrence of a specific item from the collection.
+ The tag key value pair to remove.
+
+ if item was successfully removed from the collection; otherwise, . This method also returns if item is not found in the original collection.
+
+
+ Removes the tag with the specified key from the collection.
+ The tag key.
+
+ if the item existed and removed. otherwise.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through the collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the value associated with the specified key.
+ The tag key.
+ The tag value.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.
+
+
+ Gets the number of elements contained in the collection.
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the collection is read-only. This always returns .
+ Always returns .
+
+
+ Gets or sets a specified collection item.
+
+ When setting a value to this indexer property, the following behavior is observed:
+- If the key previously existed in the collection and the value is , the collection item matching the key will get removed from the collection.
+- If the key previously existed in the collection and the value is not , the value will replace the old value stored in the collection.
+- Otherwise, a new item will get added to the collection.
+ The key of the value to get or set.
+ The object mapped to the key.
+
+
+ Get the list of the keys of all stored tags.
+ An containing the keys of the object that implements .
+
+
+ Get the list of the values of all stored tags.
+ An containing the values in the object that implements .
+
+
+ Enumerates the elements of an .
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Specifies flags defined by the W3C standard that are associated with an activity.
+
+
+ The activity has not been marked.
+
+
+ The activity (or more likely its parents) has been marked as useful to record.
+
+
+ Represents a whose format is based on a W3C standard.
+
+
+ Copies the 16 bytes of the current to a specified span.
+ The span to which the 16 bytes of the trace ID are to be copied.
+
+
+ Creates a new value from a read-only span of 16 bytes.
+ A read-only span of 16 bytes.
+
+ does not contain eight bytes.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of 32 hexadecimal characters.
+ A span that contains 32 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new trace ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new .
+
+
+ Determines whether the current instance and a specified are equal.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ Determines whether this instance and a specified object, which must also be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the TraceId.
+ The hash code of the TraceId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is the same as the TraceId of ; otherwise, .
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is different from the TraceId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Returns a 32-character hexadecimal string that represents this trace ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Provides an implementation of the abstract class that represents a named place to which a source sends its information (events).
+
+
+ Creates a new .
+ The name of this .
+
+
+ Disposes the NotificationListeners.
+
+
+ Determines whether there are any registered subscribers.
+
+ if there are any registered subscribers, otherwise.
+
+
+ Checks whether the is enabled.
+ The name of the event to check.
+
+ if notifications are enabled; otherwise, .
+
+
+ Checks if any subscriber to the diagnostic events is interested in receiving events with this name. Subscribers indicate their interest using a delegate provided in .
+ The name of the event to check.
+ The object that represents a context.
+ The object that represents a context.
+
+ if it is enabled, otherwise.
+
+
+ Invokes the OnActivityExport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Invokes the OnActivityImport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the incoming request.
+
+
+ Adds a subscriber.
+ A subscriber.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name and up to two context objects.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or to if an event filter is not desirable.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, optionally filters events based on their name and up to two context objects, and specifies methods to call when providers import or export activites from outside the process.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or if an event filter is not desirable.
+ An action delegate that receives the activity affected by an external event and an object that represents the incoming request.
+ An action delegate that receives the activity affected by an external event and an object that represents the outgoing request.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name.
+ A subscriber.
+ A delegate that filters events based on their name (). The delegate should return if the event is enabled.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Returns a string with the name of this DiagnosticListener.
+ The name of this DiagnosticListener.
+
+
+ Logs a notification.
+ The name of the event to log.
+ An object that represents the payload for the event.
+
+
+ Gets the collection of listeners for this .
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ An abstract class that allows code to be instrumented for production-time logging of rich data payloads for consumption within the process that was instrumented.
+
+
+ Initializes an instance of the class.
+
+
+ Verifies if the notification event is enabled.
+ The name of the event being written.
+
+ if the notification event is enabled, otherwise.
+
+
+ Verifies it the notification event is enabled.
+ The name of the event being written.
+ An object that represents the additional context for IsEnabled. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) to check if consumer wants to get notifications for such events at all. Based on that, producer may call IsEnabled(string, object, object) again with non- context.
+ Optional. An object that represents the additional context for IsEnabled. by default. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) or producer passed all necessary context in .
+
+ if the notification event is enabled, otherwise.
+
+
+ Transfers state from an activity to some event or operation, such as an outgoing HTTP request, that will occur outside the process.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Transfers state to an activity from some event or operation, such as an incoming request, that occurred outside the process.
+ The activity affected by an external event.
+ A payload that represents the incoming request.
+
+
+ Starts an and writes a start event.
+ The to be started.
+ An object that represent the value being passed as a payload for the event.
+ The started activity for convenient chaining.
+
+
+ Stops the given , maintains the global activity, and notifies consumers that the was stopped.
+ The activity to be stopped.
+ An object that represents the value passed as a payload for the event.
+
+
+ Provides a generic way of logging complex payloads.
+ The name of the event being written.
+ An object that represents the value being passed as a payload for the event. This is often an anonymous type which contains several sub-values.
+
+
+ An implementation of determines if and how distributed context information is encoded and decoded as it traverses the network.
+ The encoding can be transported over any network protocol that supports string key-value pairs. For example, when using HTTP, each key-value pair is an HTTP header.
+ injects values into and extracts values from carriers as string key-value pairs.
+
+
+ Initializes an instance of the class. This constructor is protected and only meant to be called from parent classes.
+
+
+ Returns the default propagator object that will be initialized with.
+ An instance of the class.
+
+
+ Returns a propagator that does not transmit any distributed context information in outbound network messages.
+ An instance of the class.
+
+
+ Returns a propagator that attempts to act transparently, emitting the same data on outbound network requests that was received on the inbound request.
+ When encoding the outbound message, this propagator uses information from the request's root Activity, ignoring any intermediate Activities that may have been created while processing the request.
+ An instance of the class.
+
+
+ Extracts the baggage key-value pair list from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation baggage list from the carrier.
+ Returns the extracted key-value pair list from the carrier.
+
+
+ Extracts the trace ID and trace state from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation trace ID and state from the carrier.
+ When this method returns, contains the trace ID extracted from the carrier.
+ When this method returns, contains the trace state extracted from the carrier.
+
+
+ Injects the trace values stroed in the object into a carrier. For example, into the headers of an HTTP request.
+ The Activity object has the distributed context to inject to the carrier.
+ The medium in which the distributed context will be stored.
+ The callback method to invoke to set a named key-value pair on the carrier.
+
+
+ Get or set the process-wide propagator object to use as the current selected propagator.
+ The currently selected process-wide propagator object.
+
+
+ Gets the set of field names this propagator is likely to read or write.
+ The list of fields that will be used by the DistributedContextPropagator
.
+
+
+ Represents the callback method that's used in the extract methods of propagators. The callback is invoked to look up the value of a named field.
+ The medium used by propagators to read values from.
+ The propagation field name.
+ When this method returns, contains the value that corresponds to . The value is non- if there is only one value for the input field name.
+ When this method returns, contains a collection of values that correspond to . The value is non- if there is more than one value for the input field name.
+
+
+ Represents the callback method that's used in propagators' inject methods. This callback is invoked to set the value of a named field.
+ Propagators may invoke it multiple times in order to set multiple fields.
+ The medium used by propagators to write values to.
+ The propagation field name.
+ The value corresponding to .
+
+
+ Represents an instrument that supports adding non-negative values. For example, you might call counter.Add(1) each time a request is processed to track the total number of requests. Most metric viewers display counters using a rate (requests/sec), by default, but can also display a cumulative total.
+ The type that the counter represents.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Adds the increment value of the measurement.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Represents a metrics instrument that can be used to report arbitrary values that are likely to be statistically meaningful, for example, the request duration. Call to create a Histogram object.
+ The type that the histogram represents.
+
+
+ Records a measurement value.
+ The measurement value.
+
+
+ Records a measurement value.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Base class of all metrics instrument classes
+
+
+ Protected constructor to initialize the common instrument properties like the meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Activates the instrument to start recording measurements and to allow listeners to start listening to such measurements.
+
+
+ Gets the instrument description.
+
+
+ Gets a value that indicates if there are any listeners for this instrument.
+
+
+ Gets a value that indicates whether the instrument is an observable instrument.
+
+
+ Gets the Meter that created the instrument.
+
+
+ Gets the instrument name.
+
+
+ Gets the instrument unit of measurements.
+
+
+ The base class for all non-observable instruments.
+ The type that the instrument represents.
+
+
+ Create the metrics instrument using the properties meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Stores one observed metrics value and its associated tags. This type is used by an Observable instrument's Observe() method when reporting current measurements.
+ The type that the measurement represents.
+
+
+ Initializes a new instance of using the specified value.
+ The measurement value.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Gets the measurement tags list.
+
+
+ Gets the measurement value.
+
+
+ A delegate to represent the Meterlistener callbacks that are used when recording measurements.
+ The instrument that sent the measurement.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+ The state object originally passed to method.
+ The type that the measurement represents.
+
+
+ Meter is the class responsible for creating and tracking the Instruments.
+
+
+ Initializes a new instance of using the specified meter name.
+ The Meter name.
+
+
+ Initializes a new instance of using the specified meter name and version.
+ The Meter name.
+ The optional Meter version.
+
+
+ Create a metrics Counter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new counter.
+
+
+ Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new histogram.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement..
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Create a metrics UpDownCounter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new up down counter.
+
+
+ Dispose the Meter which will disable all instruments created by this meter.
+
+
+ Gets the Meter name.
+ The Meter name
+
+
+ Gets the Meter version.
+ The Meter version.
+
+
+ The MeterListener is class used to listen to the metrics instrument measurements recording.
+
+
+ Initializes a new instance of the class.
+
+
+ Stops listening to a specific instrument measurement recording.
+ The instrument to stop listening to.
+ The state object originally passed to method.
+
+
+ Disposes the listeners which will stop it from listening to any instrument.
+
+
+ Starts listening to a specific instrument measurement recording.
+ The instrument to listen to.
+ A state object that will be passed back to the callback getting measurements events.
+
+
+ Calls all Observable instruments that the listener is listening to, and calls with every collected measurement.
+
+
+ Sets a callback for a specific numeric type to get the measurement recording notification from all instruments which enabled listening and was created with the same specified numeric type.
+ If a measurement of type T is recorded and a callback of type T is registered, that callback will be used.
+ The callback which can be used to get measurement recording of numeric type T.
+ The type of the numeric measurement.
+
+
+ Enables the listener to start listening to instruments measurement recording.
+
+
+ Gets or sets the callback to get notified when an instrument is published.
+ The callback to get notified when an instrument is published.
+
+
+ Gets or sets the callback to get notified when the measurement is stopped on some instrument.
+ This can happen when the Meter or the Listener is disposed or calling on the listener.
+ The callback to get notified when the measurement is stopped on some instrument.
+
+
+ Represents a metrics-observable instrument that reports monotonically increasing values when the instrument is being observed, for example, CPU time (for different processes, threads, user mode, or kernel mode). Call to create the observable counter object.
+ The type that the observable counter represents.
+
+
+ Represents an observable instrument that reports non-additive values when the instrument is being observed, for example, the current room temperature. Call to create the observable counter object.
+
+
+
+ ObservableInstrument{T} is the base class from which all metrics observable instruments will inherit.
+ The type that the observable instrument represents.
+
+
+ Initializes a new instance of the class using the specified meter, name, description, and unit.
+ All classes that extend ObservableInstrument{T} must call this constructor when constructing objects of the extended class.
+ The meter that created the instrument.
+ The instrument name. cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Fetches the current measurements being tracked by this instrument. All classes extending ObservableInstrument{T} need to implement this method.
+ The current measurements tracked by this instrument.
+
+
+ Gets a value that indicates if the instrument is an observable instrument.
+
+ if the instrument is metrics-observable; otherwise.
+
+
+ A metrics-observable instrument that reports increasing or decreasing values when the instrument is being observed.
+Use this instrument to monitor the process heap size or the approximate number of items in a lock-free circular buffer, for example.
+To create an ObservableUpDownCounter object, use the methods.
+ The type that the counter represents.
+
+
+ An instrument that supports reporting positive or negative metric values.
+ UpDownCounter may be used in scenarios like reporting the change in active requests or queue size.
+ The type that the UpDownCounter represents.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A of tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A span of key-value pair tags associated with the measurement.
+
+
+ A delegate that defines the signature of the callbacks used in the sampling process.
+ The Activity creation options used by callbacks to decide creating the Activity object or not.
+ The type of the requested parent to create the Activity object with. Should be either a string or an instance.
+ An object containing the sampling results, which indicate the amount of data to collect for the related .
+
+
+ Represents a list of tags that can be accessed by index. Provides methods to search, sort, and manipulate lists.
+
+
+ Initializes a new instance of using the specified .
+ A span of tags to initialize the list with.
+
+
+ Adds a tag to the list.
+ The key-value pair of the tag to add to the list.
+
+
+ Adds a tag with the specified and to the list.
+ The tag key.
+ The tag value.
+
+
+ Removes all elements from the .
+
+
+ Determines whether a tag is in the .
+ The tag to locate in the .
+
+ if item is found in the ; otherwise, .
+
+
+ Copies the entire to a compatible one-dimensional array, starting at the specified index of the target array.
+ The one-dimensional Array that is the destination of the elements copied from . The Array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than 0 or greater than or equal to the length.
+
+
+ Copies the contents of this into a destination span.
+ The destination object.
+
+ The number of elements in the source is greater than the number of elements that the destination span.
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Searches for the specified tag and returns the zero-based index of the first occurrence within the entire .
+ The tag to locate in the .
+ The zero-based index of the first ocurrence of in the tag list.
+
+
+ Inserts an element into the at the specified index.
+ The zero-based index at which the item should be inserted.
+ The tag to insert.
+
+ is less than 0 or is greater than .
+
+
+ Removes the first occurrence of a specific object from the .
+ The tag to remove from the .
+
+ if is successfully removed; otherwise, . This method also returns if was not found in the .
+
+
+ Removes the element at the specified index of the .
+ The zero-based index of the element to remove.
+
+ index is less than 0 or is greater than .
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Gets the number of tags contained in the .
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the is read-only. This property will always return .
+
+ Always returns .
+
+
+ Gets or sets the tags at the specified index.
+ The item index.
+
+ is not a valid index in the .
+ The element at the specified index.
+
+
+ An enumerator for traversing a tag list collection.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net6.0/System.Diagnostics.DiagnosticSource.dll b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net6.0/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000..ee41f49
Binary files /dev/null and b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net6.0/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net6.0/System.Diagnostics.DiagnosticSource.xml b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net6.0/System.Diagnostics.DiagnosticSource.xml
new file mode 100644
index 0000000..b541be3
--- /dev/null
+++ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net6.0/System.Diagnostics.DiagnosticSource.xml
@@ -0,0 +1,1723 @@
+
+
+
+ System.Diagnostics.DiagnosticSource
+
+
+
+ Represents an operation with context to be used for logging.
+
+
+ Occurs when the value changes.
+
+
+ Initializes a new instance of the class.
+ The name of the operation.
+
+
+ Updates the to have a new baggage item with the specified key and value.
+ The baggage key.
+ The baggage value.
+
+ for convenient chaining.
+
+
+ Adds the specified activity event to the events list.
+ The activity event to add.
+
+ for convenient chaining.
+
+
+ Updates the activity to have a tag with an additional and .
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Updates the to have a new tag with the provided and .
+ The tag key.
+ The tag value.
+
+ for convenient chaining.
+
+
+ Stops the activity if it is already started and notifies any event listeners. Nothing will happen otherwise.
+
+
+ When overriden by a derived type, this method releases any allocated resources.
+
+ if the method is being called from the finalizer; if calling from user code.
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the tags attached to this Activity object.
+
+ .
+
+
+ Returns the value of a key-value pair added to the activity with .
+ The baggage key.
+ The value of the key-value-pair item if it exists, or if it does not exist.
+
+
+ Returns the object mapped to the specified property name.
+ The name associated to the object.
+ The object mapped to the property name, if one is found; otherwise, .
+
+
+ Returns the value of the Activity tag mapped to the input key/>.
+ Returns if that key does not exist.
+ The tag key string.
+ The tag value mapped to the input key.
+
+
+ Add or update the Activity baggage with the input key and value.
+ If the input value is - if the collection has any baggage with the same key, then this baggage will get removed from the collection.
+ - otherwise, nothing will happen and the collection will not change.
+ If the input value is not - if the collection has any baggage with the same key, then the value mapped to this key will get updated with the new input value.
+ - otherwise, the key and value will get added as a new baggage to the collection.
+ Baggage item will be updated/removed only if it was originaly added to the current activity. Items inherited from the parents will not be changed/removed, new item would be added to current activity baggage instead.
+ The baggage key name
+ The baggage value mapped to the input key
+
+ for convenient chaining.
+
+
+ Attaches any custom object to this activity. If the specified was previously associated with another object, the property will be updated to be associated with the new instead. It is recommended to use a unique property name to avoid conflicts with anyone using the same value.
+ The name to associate the value with.
+ The object to attach and map to the property name.
+
+
+ Updates the to set its as the difference between and the specified stop time.
+ The UTC stop time.
+
+ for convenient chaining.
+
+
+ Sets the ID format on this before it is started.
+ One of the enumeration values that specifies the format of the property.
+
+ for convenient chaining.
+
+
+ Sets the parent ID using the W3C convention of a TraceId and a SpanId.
+ The parent activity's TraceId.
+ The parent activity's SpanId.
+ One of the enumeration values that specifies flags defined by the W3C standard that are associated with an activity.
+
+ for convenient chaining.
+
+
+ Updates this to indicate that the with an ID of caused this .
+ The ID of the parent operation.
+
+ for convenient chaining.
+
+
+ Sets the start time of this .
+ The start time in UTC.
+
+ for convenient chaining.
+
+
+ Sets the status code and description on the current activity object.
+ The status code
+ The error status description
+
+ for convenient chaining.
+
+
+ Adds or update the activity tag with the input key and value.
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Starts the activity.
+
+ for convenient chaining.
+
+
+ Stops the activity.
+
+
+ Gets or sets the flags (defined by the W3C ID specification) associated with the activity.
+ the flags associated with the activity.
+
+
+ Gets a collection of key/value pairs that represents information that is passed to children of this .
+ Information that's passed to children of this .
+
+
+ Gets the context of the activity. Context becomes valid only if the activity has been started.
+ The context of the activity, if the activity has been started; otherwise, returns the default context.
+
+
+ Gets or sets the current operation () for the current thread. This flows across async calls.
+ The current operation for the current thread.
+
+
+ Gets or sets the default ID format for the .
+
+
+ Gets or sets the display name of the activity.
+ A string that represents the activity display name.
+
+
+ Gets the duration of the operation.
+ The delta between and the end time if the has ended ( or was called), or if the has not ended and was not called.
+
+
+ Gets the list of all the activity events attached to this activity.
+ An enumeration of activity events attached to this activity. If the activity has no events, returns an empty enumeration.
+
+
+ Gets or sets a value that detrmines if the is always used to define the default ID format.
+
+ to always use the ; otherwise, .
+
+
+ Gets a value that indicates whether the parent context was created from remote propagation.
+
+
+ Gets an identifier that is specific to a particular request.
+ The activity ID.
+
+
+ Gets the format for the .
+ The format for the .
+
+
+ Gets or sets a value that indicates whether this activity should be populated with all the propagation information, as well as all the other properties, such as links, tags, and events.
+
+ if the activity should be populated; otherwise.
+
+
+ Gets a value that indicates whether this object is stopped or not.
+
+
+ Gets the relationship between the activity, its parents, and its children in a trace.
+ One of the enumeration values that indicate relationship between the activity, its parents, and its children in a trace.
+
+
+ Gets the list of all the activity links attached to this activity.
+ An enumeration of activity links attached to this activity. If the activity has no links, returns an empty enumeration.
+
+
+ Gets the operation name.
+ The name of the operation.
+
+
+ Gets the parent that created this activity.
+ The parent of this , if it is from the same process, or if this instance has no parent (it is a root activity) or if the parent is from outside the process.
+
+
+ Gets the ID of this activity's parent.
+ The parent ID, if one exists, or if it does not.
+
+
+ Gets the parent's .
+ The parent's .
+
+
+ Gets a value that indicates whether the W3CIdFlags.Recorded flag is set.
+
+ if the W3CIdFlags.Recorded flag is set; otherwise, .
+
+
+ Gets the root ID of this .
+ The root ID, or if the current instance has either a or an .
+
+
+ Gets the activity source associated with this activity.
+
+
+ Gets the SPAN part of the .
+ The ID for the SPAN part of , if the has the W3C format; otherwise, a zero .
+
+
+ Gets the time when the operation started.
+ The UTC time that the operation started.
+
+
+ Gets status code of the current activity object.
+
+
+ Gets the status description of the current activity object.
+
+
+ Gets the list of tags that represent information to log along with the activity. This information is not passed on to the children of this activity.
+ A key-value pair enumeration of tags and objects.
+
+
+ Gets a collection of key/value pairs that represent information that will be logged along with the to the logging system.
+ Information that will be logged along with the to the logging system.
+
+
+ Gets the TraceId part of the .
+ The ID for the TraceId part of the , if the ID has the W3C format; otherwise, a zero TraceId.
+
+
+ When starting an Activity which does not have a parent context, the Trace Id will automatically be generated using random numbers.
+ TraceIdGenerator can be used to override the runtime's default Trace Id generation algorithm.
+
+
+ Gets or sets the W3C header.
+ The W3C header.
+
+
+ Enumerates the data stored on an object.
+ Type being enumerated.
+
+
+ Returns an enumerator that iterates through the data stored on an Activity object.
+
+ .
+
+
+ Advances the enumerator to the next element of the data.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+ Provides data for the event.
+
+
+ Gets the object after the event.
+
+
+ Gets the object before the event.
+
+
+ A representation that conforms to the W3C TraceContext specification. It contains two identifiers: a TraceId and a SpanId, along with a set of common TraceFlags and system-specific TraceState values.
+
+
+ Construct a new activity context instance using the specified arguments.
+ A trace identifier.
+ A span identifier.
+ Contain details about the trace.
+ Carries system-specific configuration data.
+ Indicates if the context is propagated from a remote parent.
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Determines whether this instance and a specified object have the same value.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Parses a W3C trace context headers to an object.
+ The W3C trace parent header.
+ The trace state.
+ The trace parent is invalid.
+ The object created from the parsing operation.
+
+
+ Tries to parse the W3C trace context headers to the object.
+ The W3C trace parent header.
+ The W3C trace state.
+
+ to propagate the context from the remote parent; otherwise, .
+ When this method returns, contains the object created from the parsing operation.
+
+ if the operation succeeds; otherwise.
+
+
+ Tries to parse the W3C trace context headers to an object.
+ The W3C trace parent header.
+ The W3C trace state.
+ When this method returns , the object created from the parsing operation.
+
+ if the parsing was successful; otherwise.
+
+
+ Indicates if the activity context was propagated from a remote parent.
+
+ if it was propagated from a remote parent; otherwise.
+
+
+ The Id of the request as known by the caller.
+ The Span Id in the context.
+
+
+ The flags defined by the W3C standard along with the ID for the activity.
+ The context tracing flags.
+
+
+ The trace identifier.
+ The tracing identifier in the context.
+
+
+ Holds the W3C 'tracestate' header.
+ A string representing the W3C 'tracestate' header.
+
+
+ Encapsulates all the information that is sent to the activity listener, to make decisions about the creation of the activity instance, as well as its state.
+
+The possible generic type parameters are or .
+ The type of the property. Should be either or .
+
+
+ Gets the activity kind which the activity will be created with.
+ One of the enumeration values that represent an activity kind.
+
+
+ Gets the enumeration of activity links that the activity will be created with.
+ An enumeration of activity links.
+
+
+ Gets the name to use as OperationName of the activity that will get created.
+ A string representing the activity name.
+
+
+ Gets the parent context or parent Id that the activity will get created with.
+ The parent of the activity, represented either as a or as an .
+
+
+ Gets the collection that is used to add more tags during the sampling process. The added tags are also added to the created Activity if it is decided that it should be created by the callbacks.
+ The Activity tags collection.
+
+
+ Gets the activity source that creates the activity.
+ An activity source object.
+
+
+ Gets the tags that the activity will be created with.
+ A key-value pair enumeration of tags associated with the activity.
+
+
+ Gets the trace Id to use in the Activity object if it is decided that it should be created by callbacks.
+ The trace Id.
+
+
+ Gets or initializes the trace state to use when creating the Activity.
+
+
+ Represents an event containing a name and a timestamp, as well as an optional list of tags.
+
+
+ Initializes a new activity event instance using the specified name and the current time as the event timestamp.
+ The event name.
+
+
+ Initializes a new activity event instance using the specified name, timestamp and tags.
+ The event name.
+ The event timestamp. Timestamp must only be used for the events that happened in the past, not at the moment of this call.
+ The event tags.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Gets the activity event name.
+ A string representing the activity event name.
+
+
+ Gets the collection of tags associated with the event.
+ A key-value pair enumeration containing the tags associated with the event.
+
+
+ Gets the activity event timestamp.
+ A datetime offset representing the activity event timestamp.
+
+
+ Specifies the format of the property.
+
+
+ The hierarchical format.
+
+
+ An unknown format.
+
+
+ The W3C format.
+
+
+ Describes the relationship between the activity, its parents and its children in a trace.
+
+
+ Outgoing request to the external component.
+
+
+ Output received from an external component.
+
+
+ Internal operation within an application, as opposed to operations with remote parents or children. This is the default value.
+
+
+ Output provided to external components.
+
+
+ Requests incoming from external component.
+
+
+ Activities may be linked to zero or more activity context instances that are causally related.
+
+Activity links can point to activity contexts inside a single trace or across different traces.
+
+Activity links can be used to represent batched operations where an activity was initiated by multiple initiating activities, each representing a single incoming item being processed in the batch.
+
+
+ Constructs a new activity link, which can be linked to an activity.
+ The trace activity context.
+ The key-value pair list of tags associated to the activity context.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Indicates whether the current activity link is equal to another activity link.
+ The activity link to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Indicates whether the current activity link is equal to another object.
+ The object to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Retrieves the activity context inside this activity link.
+
+
+ Retrieves the key-value pair enumeration of tags attached to the activity context.
+ An enumeration of tags attached to the activity context.
+
+
+ Allows listening to the start and stop activity events and gives the opportunity to decide creating an activity for sampling scenarios.
+
+
+ Construct a new activity listener object to start listeneing to the activity events.
+
+
+ Unregisters this activity listener object from listening to activity events.
+
+
+ Gets or sets the callback used to listen to the activity start event.
+ An activity callback instance used to listen to the activity start event.
+
+
+ Gets or sets the callback used to listen to the activity stop event.
+ An activity callback instance used to listen to the activity stop event.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that allows deciding if activity object events that were created using the activity source object should be listened or not.
+
+ to listen events; otherwise.
+
+
+ Enumeration values used by to indicate the amount of data to collect for the related . Requesting more data causes a greater performance overhead.
+
+
+ The activity object should be populated with all the propagation information and also all other properties such as Links, Tags, and Events. Using this value causes to return .
+
+
+ The activity object should be populated the same as the case. Additionally, Activity.Recorded is set to . For activities using the W3C trace ids, this sets a flag bit in the ID that will be propagated downstream requesting that the trace is recorded everywhere.
+
+
+ The activity object does not need to be created.
+
+
+ The activity object needs to be created. It will have a Name, a Source, an Id and Baggage. Other properties are unnecessary and will be ignored by this listener.
+
+
+ Provides APIs to create and start objects and to register objects to listen to the events.
+
+
+ Constructs an activity source object with the specified .
+ The name of the activity source object.
+ The version of the component publishing the tracing info.
+
+
+ Adds a listener to the activity starting and stopping events.
+ The activity listener object to use for listening to the activity events.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity
+ The
+ The created object or if there is no any event listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ If the Activity object is created, it will not automatically start. Callers will need to call to start it.
+ The operation name of the Activity.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity.
+ The
+ The parent Id to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Disposes the activity source object, removes the current instance from the global list, and empties the listeners list.
+
+
+ Checks if there are any listeners for this activity source.
+
+ if there is a listener registered for this activity source; otherwise, .
+
+
+ Creates and starts a new object if there is any listener to the Activity events, returns otherwise.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The optional start timestamp to set on the created Activity object.
+ The operation name of the Activity.
+ The created object or if there is no any listener.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name and activity kind.
+ The operation name of the activity.
+ The activity kind.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent activity context, tags, optional activity link and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent object to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent Id, tags, optional activity links and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent Id to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Returns the activity source name.
+ A string that represents the activity source name.
+
+
+ Returns the activity source version.
+ A string that represents the activity source version.
+
+
+ Represents a formatted based on a W3C standard.
+
+
+ Copies the 8 bytes of the current to a specified span.
+ The span to which the 8 bytes of the SpanID are to be copied.
+
+
+ Creates a new value from a read-only span of eight bytes.
+ A read-only span of eight bytes.
+
+ does not contain eight bytes.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of 16 hexadecimal characters.
+ A span that contains 16 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new span ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new span ID.
+
+
+ Determines whether this instance and the specified instance have the same value.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ the current instance and a specified object, which also must be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the SpanId.
+ The hash code of the SpanId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is the same as the SpanId of ; otherwise, .
+
+
+ Determine whether two specified instances have unequal values.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is different from the SpanId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Define the status code of the Activity which indicate the status of the instrumented operation.
+
+
+ Status code indicating an error is encountered during the operation.
+
+
+ Status code indicating the operation has been validated and completed successfully.
+
+
+ Unset status code is the default value indicating the status code is not initialized.
+
+
+ ActivityTagsCollection is a collection class used to store tracing tags.
+
+This collection will be used with classes like and .
+
+This collection behaves as follows:
+- The collection items will be ordered according to how they are added.
+- Don't allow duplication of items with the same key.
+- When using the indexer to store an item in the collection:
+ - If the item has a key that previously existed in the collection and the value is , the collection item matching the key will be removed from the collection.
+ - If the item has a key that previously existed in the collection and the value is not , the new item value will replace the old value stored in the collection.
+ - Otherwise, the item will be added to the collection.
+- Add method will add a new item to the collection if an item doesn't already exist with the same key. Otherwise, it will throw an exception.
+
+
+ Create a new instance of the collection.
+
+
+ Create a new instance of the collection and store the input list items in the collection.
+ Initial list to store in the collection.
+
+
+ Adds an item to the collection.
+ Key and value pair of the tag to add to the collection.
+
+ already exists in the list.
+
+ is .
+
+
+ Adds a tag with the provided key and value to the collection. This collection doesn't allow adding two tags with the same key.
+ The tag key.
+ The tag value.
+
+
+ Removes all items from the collection.
+
+
+ Determines whether the contains a specific value.
+ The object to locate in the .
+
+ if is found in the ; otherwise, .
+
+
+ Determines whether the collection contains an element with the specified key.
+ The key to locate in the .
+
+ if the collection contains tag with that key. otherwise.
+
+
+ Copies the elements of the collection to an array, starting at a particular array index.
+ The array that is the destination of the elements copied from collection.
+ The zero-based index in array at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator for the .
+
+
+ Removes the first occurrence of a specific item from the collection.
+ The tag key value pair to remove.
+
+ if item was successfully removed from the collection; otherwise, . This method also returns if item is not found in the original collection.
+
+
+ Removes the tag with the specified key from the collection.
+ The tag key.
+
+ if the item existed and removed. otherwise.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through the collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the value associated with the specified key.
+ The tag key.
+ The tag value.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.
+
+
+ Gets the number of elements contained in the collection.
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the collection is read-only. This always returns .
+ Always returns .
+
+
+ Gets or sets a specified collection item.
+
+ When setting a value to this indexer property, the following behavior is observed:
+- If the key previously existed in the collection and the value is , the collection item matching the key will get removed from the collection.
+- If the key previously existed in the collection and the value is not , the value will replace the old value stored in the collection.
+- Otherwise, a new item will get added to the collection.
+ The key of the value to get or set.
+ The object mapped to the key.
+
+
+ Get the list of the keys of all stored tags.
+ An containing the keys of the object that implements .
+
+
+ Get the list of the values of all stored tags.
+ An containing the values in the object that implements .
+
+
+ Enumerates the elements of an .
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Specifies flags defined by the W3C standard that are associated with an activity.
+
+
+ The activity has not been marked.
+
+
+ The activity (or more likely its parents) has been marked as useful to record.
+
+
+ Represents a whose format is based on a W3C standard.
+
+
+ Copies the 16 bytes of the current to a specified span.
+ The span to which the 16 bytes of the trace ID are to be copied.
+
+
+ Creates a new value from a read-only span of 16 bytes.
+ A read-only span of 16 bytes.
+
+ does not contain eight bytes.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of 32 hexadecimal characters.
+ A span that contains 32 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new trace ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new .
+
+
+ Determines whether the current instance and a specified are equal.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ Determines whether this instance and a specified object, which must also be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the TraceId.
+ The hash code of the TraceId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is the same as the TraceId of ; otherwise, .
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is different from the TraceId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Returns a 32-character hexadecimal string that represents this trace ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Provides an implementation of the abstract class that represents a named place to which a source sends its information (events).
+
+
+ Creates a new .
+ The name of this .
+
+
+ Disposes the NotificationListeners.
+
+
+ Determines whether there are any registered subscribers.
+
+ if there are any registered subscribers, otherwise.
+
+
+ Checks whether the is enabled.
+ The name of the event to check.
+
+ if notifications are enabled; otherwise, .
+
+
+ Checks if any subscriber to the diagnostic events is interested in receiving events with this name. Subscribers indicate their interest using a delegate provided in .
+ The name of the event to check.
+ The object that represents a context.
+ The object that represents a context.
+
+ if it is enabled, otherwise.
+
+
+ Invokes the OnActivityExport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Invokes the OnActivityImport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the incoming request.
+
+
+ Adds a subscriber.
+ A subscriber.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name and up to two context objects.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or to if an event filter is not desirable.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, optionally filters events based on their name and up to two context objects, and specifies methods to call when providers import or export activites from outside the process.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or if an event filter is not desirable.
+ An action delegate that receives the activity affected by an external event and an object that represents the incoming request.
+ An action delegate that receives the activity affected by an external event and an object that represents the outgoing request.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name.
+ A subscriber.
+ A delegate that filters events based on their name (). The delegate should return if the event is enabled.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Returns a string with the name of this DiagnosticListener.
+ The name of this DiagnosticListener.
+
+
+ Logs a notification.
+ The name of the event to log.
+ An object that represents the payload for the event.
+
+
+ Gets the collection of listeners for this .
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ An abstract class that allows code to be instrumented for production-time logging of rich data payloads for consumption within the process that was instrumented.
+
+
+ Initializes an instance of the class.
+
+
+ Verifies if the notification event is enabled.
+ The name of the event being written.
+
+ if the notification event is enabled, otherwise.
+
+
+ Verifies it the notification event is enabled.
+ The name of the event being written.
+ An object that represents the additional context for IsEnabled. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) to check if consumer wants to get notifications for such events at all. Based on that, producer may call IsEnabled(string, object, object) again with non- context.
+ Optional. An object that represents the additional context for IsEnabled. by default. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) or producer passed all necessary context in .
+
+ if the notification event is enabled, otherwise.
+
+
+ Transfers state from an activity to some event or operation, such as an outgoing HTTP request, that will occur outside the process.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Transfers state to an activity from some event or operation, such as an incoming request, that occurred outside the process.
+ The activity affected by an external event.
+ A payload that represents the incoming request.
+
+
+ Starts an and writes a start event.
+ The to be started.
+ An object that represent the value being passed as a payload for the event.
+ The started activity for convenient chaining.
+
+
+ Stops the given , maintains the global activity, and notifies consumers that the was stopped.
+ The activity to be stopped.
+ An object that represents the value passed as a payload for the event.
+
+
+ Provides a generic way of logging complex payloads.
+ The name of the event being written.
+ An object that represents the value being passed as a payload for the event. This is often an anonymous type which contains several sub-values.
+
+
+ An implementation of determines if and how distributed context information is encoded and decoded as it traverses the network.
+ The encoding can be transported over any network protocol that supports string key-value pairs. For example, when using HTTP, each key-value pair is an HTTP header.
+ injects values into and extracts values from carriers as string key-value pairs.
+
+
+ Initializes an instance of the class. This constructor is protected and only meant to be called from parent classes.
+
+
+ Returns the default propagator object that will be initialized with.
+ An instance of the class.
+
+
+ Returns a propagator that does not transmit any distributed context information in outbound network messages.
+ An instance of the class.
+
+
+ Returns a propagator that attempts to act transparently, emitting the same data on outbound network requests that was received on the inbound request.
+ When encoding the outbound message, this propagator uses information from the request's root Activity, ignoring any intermediate Activities that may have been created while processing the request.
+ An instance of the class.
+
+
+ Extracts the baggage key-value pair list from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation baggage list from the carrier.
+ Returns the extracted key-value pair list from the carrier.
+
+
+ Extracts the trace ID and trace state from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation trace ID and state from the carrier.
+ When this method returns, contains the trace ID extracted from the carrier.
+ When this method returns, contains the trace state extracted from the carrier.
+
+
+ Injects the trace values stroed in the object into a carrier. For example, into the headers of an HTTP request.
+ The Activity object has the distributed context to inject to the carrier.
+ The medium in which the distributed context will be stored.
+ The callback method to invoke to set a named key-value pair on the carrier.
+
+
+ Get or set the process-wide propagator object to use as the current selected propagator.
+ The currently selected process-wide propagator object.
+
+
+ Gets the set of field names this propagator is likely to read or write.
+ The list of fields that will be used by the DistributedContextPropagator
.
+
+
+ Represents the callback method that's used in the extract methods of propagators. The callback is invoked to look up the value of a named field.
+ The medium used by propagators to read values from.
+ The propagation field name.
+ When this method returns, contains the value that corresponds to . The value is non- if there is only one value for the input field name.
+ When this method returns, contains a collection of values that correspond to . The value is non- if there is more than one value for the input field name.
+
+
+ Represents the callback method that's used in propagators' inject methods. This callback is invoked to set the value of a named field.
+ Propagators may invoke it multiple times in order to set multiple fields.
+ The medium used by propagators to write values to.
+ The propagation field name.
+ The value corresponding to .
+
+
+ Represents an instrument that supports adding non-negative values. For example, you might call counter.Add(1) each time a request is processed to track the total number of requests. Most metric viewers display counters using a rate (requests/sec), by default, but can also display a cumulative total.
+ The type that the counter represents.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Adds the increment value of the measurement.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Represents a metrics instrument that can be used to report arbitrary values that are likely to be statistically meaningful, for example, the request duration. Call to create a Histogram object.
+ The type that the histogram represents.
+
+
+ Records a measurement value.
+ The measurement value.
+
+
+ Records a measurement value.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Base class of all metrics instrument classes
+
+
+ Protected constructor to initialize the common instrument properties like the meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Activates the instrument to start recording measurements and to allow listeners to start listening to such measurements.
+
+
+ Gets the instrument description.
+
+
+ Gets a value that indicates if there are any listeners for this instrument.
+
+
+ Gets a value that indicates whether the instrument is an observable instrument.
+
+
+ Gets the Meter that created the instrument.
+
+
+ Gets the instrument name.
+
+
+ Gets the instrument unit of measurements.
+
+
+ The base class for all non-observable instruments.
+ The type that the instrument represents.
+
+
+ Create the metrics instrument using the properties meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Stores one observed metrics value and its associated tags. This type is used by an Observable instrument's Observe() method when reporting current measurements.
+ The type that the measurement represents.
+
+
+ Initializes a new instance of using the specified value.
+ The measurement value.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Gets the measurement tags list.
+
+
+ Gets the measurement value.
+
+
+ A delegate to represent the Meterlistener callbacks that are used when recording measurements.
+ The instrument that sent the measurement.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+ The state object originally passed to method.
+ The type that the measurement represents.
+
+
+ Meter is the class responsible for creating and tracking the Instruments.
+
+
+ Initializes a new instance of using the specified meter name.
+ The Meter name.
+
+
+ Initializes a new instance of using the specified meter name and version.
+ The Meter name.
+ The optional Meter version.
+
+
+ Create a metrics Counter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new counter.
+
+
+ Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new histogram.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement..
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Create a metrics UpDownCounter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new up down counter.
+
+
+ Dispose the Meter which will disable all instruments created by this meter.
+
+
+ Gets the Meter name.
+ The Meter name
+
+
+ Gets the Meter version.
+ The Meter version.
+
+
+ The MeterListener is class used to listen to the metrics instrument measurements recording.
+
+
+ Initializes a new instance of the class.
+
+
+ Stops listening to a specific instrument measurement recording.
+ The instrument to stop listening to.
+ The state object originally passed to method.
+
+
+ Disposes the listeners which will stop it from listening to any instrument.
+
+
+ Starts listening to a specific instrument measurement recording.
+ The instrument to listen to.
+ A state object that will be passed back to the callback getting measurements events.
+
+
+ Calls all Observable instruments that the listener is listening to, and calls with every collected measurement.
+
+
+ Sets a callback for a specific numeric type to get the measurement recording notification from all instruments which enabled listening and was created with the same specified numeric type.
+ If a measurement of type T is recorded and a callback of type T is registered, that callback will be used.
+ The callback which can be used to get measurement recording of numeric type T.
+ The type of the numeric measurement.
+
+
+ Enables the listener to start listening to instruments measurement recording.
+
+
+ Gets or sets the callback to get notified when an instrument is published.
+ The callback to get notified when an instrument is published.
+
+
+ Gets or sets the callback to get notified when the measurement is stopped on some instrument.
+ This can happen when the Meter or the Listener is disposed or calling on the listener.
+ The callback to get notified when the measurement is stopped on some instrument.
+
+
+ Represents a metrics-observable instrument that reports monotonically increasing values when the instrument is being observed, for example, CPU time (for different processes, threads, user mode, or kernel mode). Call to create the observable counter object.
+ The type that the observable counter represents.
+
+
+ Represents an observable instrument that reports non-additive values when the instrument is being observed, for example, the current room temperature. Call to create the observable counter object.
+
+
+
+ ObservableInstrument{T} is the base class from which all metrics observable instruments will inherit.
+ The type that the observable instrument represents.
+
+
+ Initializes a new instance of the class using the specified meter, name, description, and unit.
+ All classes that extend ObservableInstrument{T} must call this constructor when constructing objects of the extended class.
+ The meter that created the instrument.
+ The instrument name. cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Fetches the current measurements being tracked by this instrument. All classes extending ObservableInstrument{T} need to implement this method.
+ The current measurements tracked by this instrument.
+
+
+ Gets a value that indicates if the instrument is an observable instrument.
+
+ if the instrument is metrics-observable; otherwise.
+
+
+ A metrics-observable instrument that reports increasing or decreasing values when the instrument is being observed.
+Use this instrument to monitor the process heap size or the approximate number of items in a lock-free circular buffer, for example.
+To create an ObservableUpDownCounter object, use the methods.
+ The type that the counter represents.
+
+
+ An instrument that supports reporting positive or negative metric values.
+ UpDownCounter may be used in scenarios like reporting the change in active requests or queue size.
+ The type that the UpDownCounter represents.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A of tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A span of key-value pair tags associated with the measurement.
+
+
+ A delegate that defines the signature of the callbacks used in the sampling process.
+ The Activity creation options used by callbacks to decide creating the Activity object or not.
+ The type of the requested parent to create the Activity object with. Should be either a string or an instance.
+ An object containing the sampling results, which indicate the amount of data to collect for the related .
+
+
+ Represents a list of tags that can be accessed by index. Provides methods to search, sort, and manipulate lists.
+
+
+ Initializes a new instance of using the specified .
+ A span of tags to initialize the list with.
+
+
+ Adds a tag to the list.
+ The key-value pair of the tag to add to the list.
+
+
+ Adds a tag with the specified and to the list.
+ The tag key.
+ The tag value.
+
+
+ Removes all elements from the .
+
+
+ Determines whether a tag is in the .
+ The tag to locate in the .
+
+ if item is found in the ; otherwise, .
+
+
+ Copies the entire to a compatible one-dimensional array, starting at the specified index of the target array.
+ The one-dimensional Array that is the destination of the elements copied from . The Array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than 0 or greater than or equal to the length.
+
+
+ Copies the contents of this into a destination span.
+ The destination object.
+
+ The number of elements in the source is greater than the number of elements that the destination span.
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Searches for the specified tag and returns the zero-based index of the first occurrence within the entire .
+ The tag to locate in the .
+ The zero-based index of the first ocurrence of in the tag list.
+
+
+ Inserts an element into the at the specified index.
+ The zero-based index at which the item should be inserted.
+ The tag to insert.
+
+ is less than 0 or is greater than .
+
+
+ Removes the first occurrence of a specific object from the .
+ The tag to remove from the .
+
+ if is successfully removed; otherwise, . This method also returns if was not found in the .
+
+
+ Removes the element at the specified index of the .
+ The zero-based index of the element to remove.
+
+ index is less than 0 or is greater than .
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Gets the number of tags contained in the .
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the is read-only. This property will always return .
+
+ Always returns .
+
+
+ Gets or sets the tags at the specified index.
+ The item index.
+
+ is not a valid index in the .
+ The element at the specified index.
+
+
+ An enumerator for traversing a tag list collection.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net7.0/System.Diagnostics.DiagnosticSource.dll b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net7.0/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000..8237b68
Binary files /dev/null and b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net7.0/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net7.0/System.Diagnostics.DiagnosticSource.xml b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net7.0/System.Diagnostics.DiagnosticSource.xml
new file mode 100644
index 0000000..b541be3
--- /dev/null
+++ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/net7.0/System.Diagnostics.DiagnosticSource.xml
@@ -0,0 +1,1723 @@
+
+
+
+ System.Diagnostics.DiagnosticSource
+
+
+
+ Represents an operation with context to be used for logging.
+
+
+ Occurs when the value changes.
+
+
+ Initializes a new instance of the class.
+ The name of the operation.
+
+
+ Updates the to have a new baggage item with the specified key and value.
+ The baggage key.
+ The baggage value.
+
+ for convenient chaining.
+
+
+ Adds the specified activity event to the events list.
+ The activity event to add.
+
+ for convenient chaining.
+
+
+ Updates the activity to have a tag with an additional and .
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Updates the to have a new tag with the provided and .
+ The tag key.
+ The tag value.
+
+ for convenient chaining.
+
+
+ Stops the activity if it is already started and notifies any event listeners. Nothing will happen otherwise.
+
+
+ When overriden by a derived type, this method releases any allocated resources.
+
+ if the method is being called from the finalizer; if calling from user code.
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the tags attached to this Activity object.
+
+ .
+
+
+ Returns the value of a key-value pair added to the activity with .
+ The baggage key.
+ The value of the key-value-pair item if it exists, or if it does not exist.
+
+
+ Returns the object mapped to the specified property name.
+ The name associated to the object.
+ The object mapped to the property name, if one is found; otherwise, .
+
+
+ Returns the value of the Activity tag mapped to the input key/>.
+ Returns if that key does not exist.
+ The tag key string.
+ The tag value mapped to the input key.
+
+
+ Add or update the Activity baggage with the input key and value.
+ If the input value is - if the collection has any baggage with the same key, then this baggage will get removed from the collection.
+ - otherwise, nothing will happen and the collection will not change.
+ If the input value is not - if the collection has any baggage with the same key, then the value mapped to this key will get updated with the new input value.
+ - otherwise, the key and value will get added as a new baggage to the collection.
+ Baggage item will be updated/removed only if it was originaly added to the current activity. Items inherited from the parents will not be changed/removed, new item would be added to current activity baggage instead.
+ The baggage key name
+ The baggage value mapped to the input key
+
+ for convenient chaining.
+
+
+ Attaches any custom object to this activity. If the specified was previously associated with another object, the property will be updated to be associated with the new instead. It is recommended to use a unique property name to avoid conflicts with anyone using the same value.
+ The name to associate the value with.
+ The object to attach and map to the property name.
+
+
+ Updates the to set its as the difference between and the specified stop time.
+ The UTC stop time.
+
+ for convenient chaining.
+
+
+ Sets the ID format on this before it is started.
+ One of the enumeration values that specifies the format of the property.
+
+ for convenient chaining.
+
+
+ Sets the parent ID using the W3C convention of a TraceId and a SpanId.
+ The parent activity's TraceId.
+ The parent activity's SpanId.
+ One of the enumeration values that specifies flags defined by the W3C standard that are associated with an activity.
+
+ for convenient chaining.
+
+
+ Updates this to indicate that the with an ID of caused this .
+ The ID of the parent operation.
+
+ for convenient chaining.
+
+
+ Sets the start time of this .
+ The start time in UTC.
+
+ for convenient chaining.
+
+
+ Sets the status code and description on the current activity object.
+ The status code
+ The error status description
+
+ for convenient chaining.
+
+
+ Adds or update the activity tag with the input key and value.
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Starts the activity.
+
+ for convenient chaining.
+
+
+ Stops the activity.
+
+
+ Gets or sets the flags (defined by the W3C ID specification) associated with the activity.
+ the flags associated with the activity.
+
+
+ Gets a collection of key/value pairs that represents information that is passed to children of this .
+ Information that's passed to children of this .
+
+
+ Gets the context of the activity. Context becomes valid only if the activity has been started.
+ The context of the activity, if the activity has been started; otherwise, returns the default context.
+
+
+ Gets or sets the current operation () for the current thread. This flows across async calls.
+ The current operation for the current thread.
+
+
+ Gets or sets the default ID format for the .
+
+
+ Gets or sets the display name of the activity.
+ A string that represents the activity display name.
+
+
+ Gets the duration of the operation.
+ The delta between and the end time if the has ended ( or was called), or if the has not ended and was not called.
+
+
+ Gets the list of all the activity events attached to this activity.
+ An enumeration of activity events attached to this activity. If the activity has no events, returns an empty enumeration.
+
+
+ Gets or sets a value that detrmines if the is always used to define the default ID format.
+
+ to always use the ; otherwise, .
+
+
+ Gets a value that indicates whether the parent context was created from remote propagation.
+
+
+ Gets an identifier that is specific to a particular request.
+ The activity ID.
+
+
+ Gets the format for the .
+ The format for the .
+
+
+ Gets or sets a value that indicates whether this activity should be populated with all the propagation information, as well as all the other properties, such as links, tags, and events.
+
+ if the activity should be populated; otherwise.
+
+
+ Gets a value that indicates whether this object is stopped or not.
+
+
+ Gets the relationship between the activity, its parents, and its children in a trace.
+ One of the enumeration values that indicate relationship between the activity, its parents, and its children in a trace.
+
+
+ Gets the list of all the activity links attached to this activity.
+ An enumeration of activity links attached to this activity. If the activity has no links, returns an empty enumeration.
+
+
+ Gets the operation name.
+ The name of the operation.
+
+
+ Gets the parent that created this activity.
+ The parent of this , if it is from the same process, or if this instance has no parent (it is a root activity) or if the parent is from outside the process.
+
+
+ Gets the ID of this activity's parent.
+ The parent ID, if one exists, or if it does not.
+
+
+ Gets the parent's .
+ The parent's .
+
+
+ Gets a value that indicates whether the W3CIdFlags.Recorded flag is set.
+
+ if the W3CIdFlags.Recorded flag is set; otherwise, .
+
+
+ Gets the root ID of this .
+ The root ID, or if the current instance has either a or an .
+
+
+ Gets the activity source associated with this activity.
+
+
+ Gets the SPAN part of the .
+ The ID for the SPAN part of , if the has the W3C format; otherwise, a zero .
+
+
+ Gets the time when the operation started.
+ The UTC time that the operation started.
+
+
+ Gets status code of the current activity object.
+
+
+ Gets the status description of the current activity object.
+
+
+ Gets the list of tags that represent information to log along with the activity. This information is not passed on to the children of this activity.
+ A key-value pair enumeration of tags and objects.
+
+
+ Gets a collection of key/value pairs that represent information that will be logged along with the to the logging system.
+ Information that will be logged along with the to the logging system.
+
+
+ Gets the TraceId part of the .
+ The ID for the TraceId part of the , if the ID has the W3C format; otherwise, a zero TraceId.
+
+
+ When starting an Activity which does not have a parent context, the Trace Id will automatically be generated using random numbers.
+ TraceIdGenerator can be used to override the runtime's default Trace Id generation algorithm.
+
+
+ Gets or sets the W3C header.
+ The W3C header.
+
+
+ Enumerates the data stored on an object.
+ Type being enumerated.
+
+
+ Returns an enumerator that iterates through the data stored on an Activity object.
+
+ .
+
+
+ Advances the enumerator to the next element of the data.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+ Provides data for the event.
+
+
+ Gets the object after the event.
+
+
+ Gets the object before the event.
+
+
+ A representation that conforms to the W3C TraceContext specification. It contains two identifiers: a TraceId and a SpanId, along with a set of common TraceFlags and system-specific TraceState values.
+
+
+ Construct a new activity context instance using the specified arguments.
+ A trace identifier.
+ A span identifier.
+ Contain details about the trace.
+ Carries system-specific configuration data.
+ Indicates if the context is propagated from a remote parent.
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Determines whether this instance and a specified object have the same value.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Parses a W3C trace context headers to an object.
+ The W3C trace parent header.
+ The trace state.
+ The trace parent is invalid.
+ The object created from the parsing operation.
+
+
+ Tries to parse the W3C trace context headers to the object.
+ The W3C trace parent header.
+ The W3C trace state.
+
+ to propagate the context from the remote parent; otherwise, .
+ When this method returns, contains the object created from the parsing operation.
+
+ if the operation succeeds; otherwise.
+
+
+ Tries to parse the W3C trace context headers to an object.
+ The W3C trace parent header.
+ The W3C trace state.
+ When this method returns , the object created from the parsing operation.
+
+ if the parsing was successful; otherwise.
+
+
+ Indicates if the activity context was propagated from a remote parent.
+
+ if it was propagated from a remote parent; otherwise.
+
+
+ The Id of the request as known by the caller.
+ The Span Id in the context.
+
+
+ The flags defined by the W3C standard along with the ID for the activity.
+ The context tracing flags.
+
+
+ The trace identifier.
+ The tracing identifier in the context.
+
+
+ Holds the W3C 'tracestate' header.
+ A string representing the W3C 'tracestate' header.
+
+
+ Encapsulates all the information that is sent to the activity listener, to make decisions about the creation of the activity instance, as well as its state.
+
+The possible generic type parameters are or .
+ The type of the property. Should be either or .
+
+
+ Gets the activity kind which the activity will be created with.
+ One of the enumeration values that represent an activity kind.
+
+
+ Gets the enumeration of activity links that the activity will be created with.
+ An enumeration of activity links.
+
+
+ Gets the name to use as OperationName of the activity that will get created.
+ A string representing the activity name.
+
+
+ Gets the parent context or parent Id that the activity will get created with.
+ The parent of the activity, represented either as a or as an .
+
+
+ Gets the collection that is used to add more tags during the sampling process. The added tags are also added to the created Activity if it is decided that it should be created by the callbacks.
+ The Activity tags collection.
+
+
+ Gets the activity source that creates the activity.
+ An activity source object.
+
+
+ Gets the tags that the activity will be created with.
+ A key-value pair enumeration of tags associated with the activity.
+
+
+ Gets the trace Id to use in the Activity object if it is decided that it should be created by callbacks.
+ The trace Id.
+
+
+ Gets or initializes the trace state to use when creating the Activity.
+
+
+ Represents an event containing a name and a timestamp, as well as an optional list of tags.
+
+
+ Initializes a new activity event instance using the specified name and the current time as the event timestamp.
+ The event name.
+
+
+ Initializes a new activity event instance using the specified name, timestamp and tags.
+ The event name.
+ The event timestamp. Timestamp must only be used for the events that happened in the past, not at the moment of this call.
+ The event tags.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Gets the activity event name.
+ A string representing the activity event name.
+
+
+ Gets the collection of tags associated with the event.
+ A key-value pair enumeration containing the tags associated with the event.
+
+
+ Gets the activity event timestamp.
+ A datetime offset representing the activity event timestamp.
+
+
+ Specifies the format of the property.
+
+
+ The hierarchical format.
+
+
+ An unknown format.
+
+
+ The W3C format.
+
+
+ Describes the relationship between the activity, its parents and its children in a trace.
+
+
+ Outgoing request to the external component.
+
+
+ Output received from an external component.
+
+
+ Internal operation within an application, as opposed to operations with remote parents or children. This is the default value.
+
+
+ Output provided to external components.
+
+
+ Requests incoming from external component.
+
+
+ Activities may be linked to zero or more activity context instances that are causally related.
+
+Activity links can point to activity contexts inside a single trace or across different traces.
+
+Activity links can be used to represent batched operations where an activity was initiated by multiple initiating activities, each representing a single incoming item being processed in the batch.
+
+
+ Constructs a new activity link, which can be linked to an activity.
+ The trace activity context.
+ The key-value pair list of tags associated to the activity context.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Indicates whether the current activity link is equal to another activity link.
+ The activity link to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Indicates whether the current activity link is equal to another object.
+ The object to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Retrieves the activity context inside this activity link.
+
+
+ Retrieves the key-value pair enumeration of tags attached to the activity context.
+ An enumeration of tags attached to the activity context.
+
+
+ Allows listening to the start and stop activity events and gives the opportunity to decide creating an activity for sampling scenarios.
+
+
+ Construct a new activity listener object to start listeneing to the activity events.
+
+
+ Unregisters this activity listener object from listening to activity events.
+
+
+ Gets or sets the callback used to listen to the activity start event.
+ An activity callback instance used to listen to the activity start event.
+
+
+ Gets or sets the callback used to listen to the activity stop event.
+ An activity callback instance used to listen to the activity stop event.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that allows deciding if activity object events that were created using the activity source object should be listened or not.
+
+ to listen events; otherwise.
+
+
+ Enumeration values used by to indicate the amount of data to collect for the related . Requesting more data causes a greater performance overhead.
+
+
+ The activity object should be populated with all the propagation information and also all other properties such as Links, Tags, and Events. Using this value causes to return .
+
+
+ The activity object should be populated the same as the case. Additionally, Activity.Recorded is set to . For activities using the W3C trace ids, this sets a flag bit in the ID that will be propagated downstream requesting that the trace is recorded everywhere.
+
+
+ The activity object does not need to be created.
+
+
+ The activity object needs to be created. It will have a Name, a Source, an Id and Baggage. Other properties are unnecessary and will be ignored by this listener.
+
+
+ Provides APIs to create and start objects and to register objects to listen to the events.
+
+
+ Constructs an activity source object with the specified .
+ The name of the activity source object.
+ The version of the component publishing the tracing info.
+
+
+ Adds a listener to the activity starting and stopping events.
+ The activity listener object to use for listening to the activity events.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity
+ The
+ The created object or if there is no any event listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ If the Activity object is created, it will not automatically start. Callers will need to call to start it.
+ The operation name of the Activity.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity.
+ The
+ The parent Id to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Disposes the activity source object, removes the current instance from the global list, and empties the listeners list.
+
+
+ Checks if there are any listeners for this activity source.
+
+ if there is a listener registered for this activity source; otherwise, .
+
+
+ Creates and starts a new object if there is any listener to the Activity events, returns otherwise.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The optional start timestamp to set on the created Activity object.
+ The operation name of the Activity.
+ The created object or if there is no any listener.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name and activity kind.
+ The operation name of the activity.
+ The activity kind.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent activity context, tags, optional activity link and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent object to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent Id, tags, optional activity links and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent Id to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Returns the activity source name.
+ A string that represents the activity source name.
+
+
+ Returns the activity source version.
+ A string that represents the activity source version.
+
+
+ Represents a formatted based on a W3C standard.
+
+
+ Copies the 8 bytes of the current to a specified span.
+ The span to which the 8 bytes of the SpanID are to be copied.
+
+
+ Creates a new value from a read-only span of eight bytes.
+ A read-only span of eight bytes.
+
+ does not contain eight bytes.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of 16 hexadecimal characters.
+ A span that contains 16 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new span ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new span ID.
+
+
+ Determines whether this instance and the specified instance have the same value.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ the current instance and a specified object, which also must be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the SpanId.
+ The hash code of the SpanId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is the same as the SpanId of ; otherwise, .
+
+
+ Determine whether two specified instances have unequal values.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is different from the SpanId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Define the status code of the Activity which indicate the status of the instrumented operation.
+
+
+ Status code indicating an error is encountered during the operation.
+
+
+ Status code indicating the operation has been validated and completed successfully.
+
+
+ Unset status code is the default value indicating the status code is not initialized.
+
+
+ ActivityTagsCollection is a collection class used to store tracing tags.
+
+This collection will be used with classes like and .
+
+This collection behaves as follows:
+- The collection items will be ordered according to how they are added.
+- Don't allow duplication of items with the same key.
+- When using the indexer to store an item in the collection:
+ - If the item has a key that previously existed in the collection and the value is , the collection item matching the key will be removed from the collection.
+ - If the item has a key that previously existed in the collection and the value is not , the new item value will replace the old value stored in the collection.
+ - Otherwise, the item will be added to the collection.
+- Add method will add a new item to the collection if an item doesn't already exist with the same key. Otherwise, it will throw an exception.
+
+
+ Create a new instance of the collection.
+
+
+ Create a new instance of the collection and store the input list items in the collection.
+ Initial list to store in the collection.
+
+
+ Adds an item to the collection.
+ Key and value pair of the tag to add to the collection.
+
+ already exists in the list.
+
+ is .
+
+
+ Adds a tag with the provided key and value to the collection. This collection doesn't allow adding two tags with the same key.
+ The tag key.
+ The tag value.
+
+
+ Removes all items from the collection.
+
+
+ Determines whether the contains a specific value.
+ The object to locate in the .
+
+ if is found in the ; otherwise, .
+
+
+ Determines whether the collection contains an element with the specified key.
+ The key to locate in the .
+
+ if the collection contains tag with that key. otherwise.
+
+
+ Copies the elements of the collection to an array, starting at a particular array index.
+ The array that is the destination of the elements copied from collection.
+ The zero-based index in array at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator for the .
+
+
+ Removes the first occurrence of a specific item from the collection.
+ The tag key value pair to remove.
+
+ if item was successfully removed from the collection; otherwise, . This method also returns if item is not found in the original collection.
+
+
+ Removes the tag with the specified key from the collection.
+ The tag key.
+
+ if the item existed and removed. otherwise.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through the collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the value associated with the specified key.
+ The tag key.
+ The tag value.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.
+
+
+ Gets the number of elements contained in the collection.
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the collection is read-only. This always returns .
+ Always returns .
+
+
+ Gets or sets a specified collection item.
+
+ When setting a value to this indexer property, the following behavior is observed:
+- If the key previously existed in the collection and the value is , the collection item matching the key will get removed from the collection.
+- If the key previously existed in the collection and the value is not , the value will replace the old value stored in the collection.
+- Otherwise, a new item will get added to the collection.
+ The key of the value to get or set.
+ The object mapped to the key.
+
+
+ Get the list of the keys of all stored tags.
+ An containing the keys of the object that implements .
+
+
+ Get the list of the values of all stored tags.
+ An containing the values in the object that implements .
+
+
+ Enumerates the elements of an .
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Specifies flags defined by the W3C standard that are associated with an activity.
+
+
+ The activity has not been marked.
+
+
+ The activity (or more likely its parents) has been marked as useful to record.
+
+
+ Represents a whose format is based on a W3C standard.
+
+
+ Copies the 16 bytes of the current to a specified span.
+ The span to which the 16 bytes of the trace ID are to be copied.
+
+
+ Creates a new value from a read-only span of 16 bytes.
+ A read-only span of 16 bytes.
+
+ does not contain eight bytes.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of 32 hexadecimal characters.
+ A span that contains 32 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new trace ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new .
+
+
+ Determines whether the current instance and a specified are equal.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ Determines whether this instance and a specified object, which must also be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the TraceId.
+ The hash code of the TraceId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is the same as the TraceId of ; otherwise, .
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is different from the TraceId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Returns a 32-character hexadecimal string that represents this trace ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Provides an implementation of the abstract class that represents a named place to which a source sends its information (events).
+
+
+ Creates a new .
+ The name of this .
+
+
+ Disposes the NotificationListeners.
+
+
+ Determines whether there are any registered subscribers.
+
+ if there are any registered subscribers, otherwise.
+
+
+ Checks whether the is enabled.
+ The name of the event to check.
+
+ if notifications are enabled; otherwise, .
+
+
+ Checks if any subscriber to the diagnostic events is interested in receiving events with this name. Subscribers indicate their interest using a delegate provided in .
+ The name of the event to check.
+ The object that represents a context.
+ The object that represents a context.
+
+ if it is enabled, otherwise.
+
+
+ Invokes the OnActivityExport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Invokes the OnActivityImport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the incoming request.
+
+
+ Adds a subscriber.
+ A subscriber.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name and up to two context objects.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or to if an event filter is not desirable.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, optionally filters events based on their name and up to two context objects, and specifies methods to call when providers import or export activites from outside the process.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or if an event filter is not desirable.
+ An action delegate that receives the activity affected by an external event and an object that represents the incoming request.
+ An action delegate that receives the activity affected by an external event and an object that represents the outgoing request.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name.
+ A subscriber.
+ A delegate that filters events based on their name (). The delegate should return if the event is enabled.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Returns a string with the name of this DiagnosticListener.
+ The name of this DiagnosticListener.
+
+
+ Logs a notification.
+ The name of the event to log.
+ An object that represents the payload for the event.
+
+
+ Gets the collection of listeners for this .
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ An abstract class that allows code to be instrumented for production-time logging of rich data payloads for consumption within the process that was instrumented.
+
+
+ Initializes an instance of the class.
+
+
+ Verifies if the notification event is enabled.
+ The name of the event being written.
+
+ if the notification event is enabled, otherwise.
+
+
+ Verifies it the notification event is enabled.
+ The name of the event being written.
+ An object that represents the additional context for IsEnabled. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) to check if consumer wants to get notifications for such events at all. Based on that, producer may call IsEnabled(string, object, object) again with non- context.
+ Optional. An object that represents the additional context for IsEnabled. by default. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) or producer passed all necessary context in .
+
+ if the notification event is enabled, otherwise.
+
+
+ Transfers state from an activity to some event or operation, such as an outgoing HTTP request, that will occur outside the process.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Transfers state to an activity from some event or operation, such as an incoming request, that occurred outside the process.
+ The activity affected by an external event.
+ A payload that represents the incoming request.
+
+
+ Starts an and writes a start event.
+ The to be started.
+ An object that represent the value being passed as a payload for the event.
+ The started activity for convenient chaining.
+
+
+ Stops the given , maintains the global activity, and notifies consumers that the was stopped.
+ The activity to be stopped.
+ An object that represents the value passed as a payload for the event.
+
+
+ Provides a generic way of logging complex payloads.
+ The name of the event being written.
+ An object that represents the value being passed as a payload for the event. This is often an anonymous type which contains several sub-values.
+
+
+ An implementation of determines if and how distributed context information is encoded and decoded as it traverses the network.
+ The encoding can be transported over any network protocol that supports string key-value pairs. For example, when using HTTP, each key-value pair is an HTTP header.
+ injects values into and extracts values from carriers as string key-value pairs.
+
+
+ Initializes an instance of the class. This constructor is protected and only meant to be called from parent classes.
+
+
+ Returns the default propagator object that will be initialized with.
+ An instance of the class.
+
+
+ Returns a propagator that does not transmit any distributed context information in outbound network messages.
+ An instance of the class.
+
+
+ Returns a propagator that attempts to act transparently, emitting the same data on outbound network requests that was received on the inbound request.
+ When encoding the outbound message, this propagator uses information from the request's root Activity, ignoring any intermediate Activities that may have been created while processing the request.
+ An instance of the class.
+
+
+ Extracts the baggage key-value pair list from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation baggage list from the carrier.
+ Returns the extracted key-value pair list from the carrier.
+
+
+ Extracts the trace ID and trace state from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation trace ID and state from the carrier.
+ When this method returns, contains the trace ID extracted from the carrier.
+ When this method returns, contains the trace state extracted from the carrier.
+
+
+ Injects the trace values stroed in the object into a carrier. For example, into the headers of an HTTP request.
+ The Activity object has the distributed context to inject to the carrier.
+ The medium in which the distributed context will be stored.
+ The callback method to invoke to set a named key-value pair on the carrier.
+
+
+ Get or set the process-wide propagator object to use as the current selected propagator.
+ The currently selected process-wide propagator object.
+
+
+ Gets the set of field names this propagator is likely to read or write.
+ The list of fields that will be used by the DistributedContextPropagator
.
+
+
+ Represents the callback method that's used in the extract methods of propagators. The callback is invoked to look up the value of a named field.
+ The medium used by propagators to read values from.
+ The propagation field name.
+ When this method returns, contains the value that corresponds to . The value is non- if there is only one value for the input field name.
+ When this method returns, contains a collection of values that correspond to . The value is non- if there is more than one value for the input field name.
+
+
+ Represents the callback method that's used in propagators' inject methods. This callback is invoked to set the value of a named field.
+ Propagators may invoke it multiple times in order to set multiple fields.
+ The medium used by propagators to write values to.
+ The propagation field name.
+ The value corresponding to .
+
+
+ Represents an instrument that supports adding non-negative values. For example, you might call counter.Add(1) each time a request is processed to track the total number of requests. Most metric viewers display counters using a rate (requests/sec), by default, but can also display a cumulative total.
+ The type that the counter represents.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Adds the increment value of the measurement.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Represents a metrics instrument that can be used to report arbitrary values that are likely to be statistically meaningful, for example, the request duration. Call to create a Histogram object.
+ The type that the histogram represents.
+
+
+ Records a measurement value.
+ The measurement value.
+
+
+ Records a measurement value.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Base class of all metrics instrument classes
+
+
+ Protected constructor to initialize the common instrument properties like the meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Activates the instrument to start recording measurements and to allow listeners to start listening to such measurements.
+
+
+ Gets the instrument description.
+
+
+ Gets a value that indicates if there are any listeners for this instrument.
+
+
+ Gets a value that indicates whether the instrument is an observable instrument.
+
+
+ Gets the Meter that created the instrument.
+
+
+ Gets the instrument name.
+
+
+ Gets the instrument unit of measurements.
+
+
+ The base class for all non-observable instruments.
+ The type that the instrument represents.
+
+
+ Create the metrics instrument using the properties meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Stores one observed metrics value and its associated tags. This type is used by an Observable instrument's Observe() method when reporting current measurements.
+ The type that the measurement represents.
+
+
+ Initializes a new instance of using the specified value.
+ The measurement value.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Gets the measurement tags list.
+
+
+ Gets the measurement value.
+
+
+ A delegate to represent the Meterlistener callbacks that are used when recording measurements.
+ The instrument that sent the measurement.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+ The state object originally passed to method.
+ The type that the measurement represents.
+
+
+ Meter is the class responsible for creating and tracking the Instruments.
+
+
+ Initializes a new instance of using the specified meter name.
+ The Meter name.
+
+
+ Initializes a new instance of using the specified meter name and version.
+ The Meter name.
+ The optional Meter version.
+
+
+ Create a metrics Counter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new counter.
+
+
+ Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new histogram.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement..
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Create a metrics UpDownCounter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new up down counter.
+
+
+ Dispose the Meter which will disable all instruments created by this meter.
+
+
+ Gets the Meter name.
+ The Meter name
+
+
+ Gets the Meter version.
+ The Meter version.
+
+
+ The MeterListener is class used to listen to the metrics instrument measurements recording.
+
+
+ Initializes a new instance of the class.
+
+
+ Stops listening to a specific instrument measurement recording.
+ The instrument to stop listening to.
+ The state object originally passed to method.
+
+
+ Disposes the listeners which will stop it from listening to any instrument.
+
+
+ Starts listening to a specific instrument measurement recording.
+ The instrument to listen to.
+ A state object that will be passed back to the callback getting measurements events.
+
+
+ Calls all Observable instruments that the listener is listening to, and calls with every collected measurement.
+
+
+ Sets a callback for a specific numeric type to get the measurement recording notification from all instruments which enabled listening and was created with the same specified numeric type.
+ If a measurement of type T is recorded and a callback of type T is registered, that callback will be used.
+ The callback which can be used to get measurement recording of numeric type T.
+ The type of the numeric measurement.
+
+
+ Enables the listener to start listening to instruments measurement recording.
+
+
+ Gets or sets the callback to get notified when an instrument is published.
+ The callback to get notified when an instrument is published.
+
+
+ Gets or sets the callback to get notified when the measurement is stopped on some instrument.
+ This can happen when the Meter or the Listener is disposed or calling on the listener.
+ The callback to get notified when the measurement is stopped on some instrument.
+
+
+ Represents a metrics-observable instrument that reports monotonically increasing values when the instrument is being observed, for example, CPU time (for different processes, threads, user mode, or kernel mode). Call to create the observable counter object.
+ The type that the observable counter represents.
+
+
+ Represents an observable instrument that reports non-additive values when the instrument is being observed, for example, the current room temperature. Call to create the observable counter object.
+
+
+
+ ObservableInstrument{T} is the base class from which all metrics observable instruments will inherit.
+ The type that the observable instrument represents.
+
+
+ Initializes a new instance of the class using the specified meter, name, description, and unit.
+ All classes that extend ObservableInstrument{T} must call this constructor when constructing objects of the extended class.
+ The meter that created the instrument.
+ The instrument name. cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Fetches the current measurements being tracked by this instrument. All classes extending ObservableInstrument{T} need to implement this method.
+ The current measurements tracked by this instrument.
+
+
+ Gets a value that indicates if the instrument is an observable instrument.
+
+ if the instrument is metrics-observable; otherwise.
+
+
+ A metrics-observable instrument that reports increasing or decreasing values when the instrument is being observed.
+Use this instrument to monitor the process heap size or the approximate number of items in a lock-free circular buffer, for example.
+To create an ObservableUpDownCounter object, use the methods.
+ The type that the counter represents.
+
+
+ An instrument that supports reporting positive or negative metric values.
+ UpDownCounter may be used in scenarios like reporting the change in active requests or queue size.
+ The type that the UpDownCounter represents.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A of tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A span of key-value pair tags associated with the measurement.
+
+
+ A delegate that defines the signature of the callbacks used in the sampling process.
+ The Activity creation options used by callbacks to decide creating the Activity object or not.
+ The type of the requested parent to create the Activity object with. Should be either a string or an instance.
+ An object containing the sampling results, which indicate the amount of data to collect for the related .
+
+
+ Represents a list of tags that can be accessed by index. Provides methods to search, sort, and manipulate lists.
+
+
+ Initializes a new instance of using the specified .
+ A span of tags to initialize the list with.
+
+
+ Adds a tag to the list.
+ The key-value pair of the tag to add to the list.
+
+
+ Adds a tag with the specified and to the list.
+ The tag key.
+ The tag value.
+
+
+ Removes all elements from the .
+
+
+ Determines whether a tag is in the .
+ The tag to locate in the .
+
+ if item is found in the ; otherwise, .
+
+
+ Copies the entire to a compatible one-dimensional array, starting at the specified index of the target array.
+ The one-dimensional Array that is the destination of the elements copied from . The Array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than 0 or greater than or equal to the length.
+
+
+ Copies the contents of this into a destination span.
+ The destination object.
+
+ The number of elements in the source is greater than the number of elements that the destination span.
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Searches for the specified tag and returns the zero-based index of the first occurrence within the entire .
+ The tag to locate in the .
+ The zero-based index of the first ocurrence of in the tag list.
+
+
+ Inserts an element into the at the specified index.
+ The zero-based index at which the item should be inserted.
+ The tag to insert.
+
+ is less than 0 or is greater than .
+
+
+ Removes the first occurrence of a specific object from the .
+ The tag to remove from the .
+
+ if is successfully removed; otherwise, . This method also returns if was not found in the .
+
+
+ Removes the element at the specified index of the .
+ The zero-based index of the element to remove.
+
+ index is less than 0 or is greater than .
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Gets the number of tags contained in the .
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the is read-only. This property will always return .
+
+ Always returns .
+
+
+ Gets or sets the tags at the specified index.
+ The item index.
+
+ is not a valid index in the .
+ The element at the specified index.
+
+
+ An enumerator for traversing a tag list collection.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000..733fc36
Binary files /dev/null and b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml
new file mode 100644
index 0000000..b541be3
--- /dev/null
+++ b/packages/System.Diagnostics.DiagnosticSource.7.0.2/lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml
@@ -0,0 +1,1723 @@
+
+
+
+ System.Diagnostics.DiagnosticSource
+
+
+
+ Represents an operation with context to be used for logging.
+
+
+ Occurs when the value changes.
+
+
+ Initializes a new instance of the class.
+ The name of the operation.
+
+
+ Updates the to have a new baggage item with the specified key and value.
+ The baggage key.
+ The baggage value.
+
+ for convenient chaining.
+
+
+ Adds the specified activity event to the events list.
+ The activity event to add.
+
+ for convenient chaining.
+
+
+ Updates the activity to have a tag with an additional and .
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Updates the to have a new tag with the provided and .
+ The tag key.
+ The tag value.
+
+ for convenient chaining.
+
+
+ Stops the activity if it is already started and notifies any event listeners. Nothing will happen otherwise.
+
+
+ When overriden by a derived type, this method releases any allocated resources.
+
+ if the method is being called from the finalizer; if calling from user code.
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the tags attached to this Activity object.
+
+ .
+
+
+ Returns the value of a key-value pair added to the activity with .
+ The baggage key.
+ The value of the key-value-pair item if it exists, or if it does not exist.
+
+
+ Returns the object mapped to the specified property name.
+ The name associated to the object.
+ The object mapped to the property name, if one is found; otherwise, .
+
+
+ Returns the value of the Activity tag mapped to the input key/>.
+ Returns if that key does not exist.
+ The tag key string.
+ The tag value mapped to the input key.
+
+
+ Add or update the Activity baggage with the input key and value.
+ If the input value is - if the collection has any baggage with the same key, then this baggage will get removed from the collection.
+ - otherwise, nothing will happen and the collection will not change.
+ If the input value is not - if the collection has any baggage with the same key, then the value mapped to this key will get updated with the new input value.
+ - otherwise, the key and value will get added as a new baggage to the collection.
+ Baggage item will be updated/removed only if it was originaly added to the current activity. Items inherited from the parents will not be changed/removed, new item would be added to current activity baggage instead.
+ The baggage key name
+ The baggage value mapped to the input key
+
+ for convenient chaining.
+
+
+ Attaches any custom object to this activity. If the specified was previously associated with another object, the property will be updated to be associated with the new instead. It is recommended to use a unique property name to avoid conflicts with anyone using the same value.
+ The name to associate the value with.
+ The object to attach and map to the property name.
+
+
+ Updates the to set its as the difference between and the specified stop time.
+ The UTC stop time.
+
+ for convenient chaining.
+
+
+ Sets the ID format on this before it is started.
+ One of the enumeration values that specifies the format of the property.
+
+ for convenient chaining.
+
+
+ Sets the parent ID using the W3C convention of a TraceId and a SpanId.
+ The parent activity's TraceId.
+ The parent activity's SpanId.
+ One of the enumeration values that specifies flags defined by the W3C standard that are associated with an activity.
+
+ for convenient chaining.
+
+
+ Updates this to indicate that the with an ID of caused this .
+ The ID of the parent operation.
+
+ for convenient chaining.
+
+
+ Sets the start time of this .
+ The start time in UTC.
+
+ for convenient chaining.
+
+
+ Sets the status code and description on the current activity object.
+ The status code
+ The error status description
+
+ for convenient chaining.
+
+
+ Adds or update the activity tag with the input key and value.
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Starts the activity.
+
+ for convenient chaining.
+
+
+ Stops the activity.
+
+
+ Gets or sets the flags (defined by the W3C ID specification) associated with the activity.
+ the flags associated with the activity.
+
+
+ Gets a collection of key/value pairs that represents information that is passed to children of this .
+ Information that's passed to children of this .
+
+
+ Gets the context of the activity. Context becomes valid only if the activity has been started.
+ The context of the activity, if the activity has been started; otherwise, returns the default context.
+
+
+ Gets or sets the current operation () for the current thread. This flows across async calls.
+ The current operation for the current thread.
+
+
+ Gets or sets the default ID format for the .
+
+
+ Gets or sets the display name of the activity.
+ A string that represents the activity display name.
+
+
+ Gets the duration of the operation.
+ The delta between and the end time if the has ended ( or was called), or if the has not ended and was not called.
+
+
+ Gets the list of all the activity events attached to this activity.
+ An enumeration of activity events attached to this activity. If the activity has no events, returns an empty enumeration.
+
+
+ Gets or sets a value that detrmines if the is always used to define the default ID format.
+
+ to always use the ; otherwise, .
+
+
+ Gets a value that indicates whether the parent context was created from remote propagation.
+
+
+ Gets an identifier that is specific to a particular request.
+ The activity ID.
+
+
+ Gets the format for the .
+ The format for the .
+
+
+ Gets or sets a value that indicates whether this activity should be populated with all the propagation information, as well as all the other properties, such as links, tags, and events.
+
+ if the activity should be populated; otherwise.
+
+
+ Gets a value that indicates whether this object is stopped or not.
+
+
+ Gets the relationship between the activity, its parents, and its children in a trace.
+ One of the enumeration values that indicate relationship between the activity, its parents, and its children in a trace.
+
+
+ Gets the list of all the activity links attached to this activity.
+ An enumeration of activity links attached to this activity. If the activity has no links, returns an empty enumeration.
+
+
+ Gets the operation name.
+ The name of the operation.
+
+
+ Gets the parent that created this activity.
+ The parent of this , if it is from the same process, or if this instance has no parent (it is a root activity) or if the parent is from outside the process.
+
+
+ Gets the ID of this activity's parent.
+ The parent ID, if one exists, or if it does not.
+
+
+ Gets the parent's .
+ The parent's .
+
+
+ Gets a value that indicates whether the W3CIdFlags.Recorded flag is set.
+
+ if the W3CIdFlags.Recorded flag is set; otherwise, .
+
+
+ Gets the root ID of this .
+ The root ID, or if the current instance has either a or an .
+
+
+ Gets the activity source associated with this activity.
+
+
+ Gets the SPAN part of the .
+ The ID for the SPAN part of , if the has the W3C format; otherwise, a zero .
+
+
+ Gets the time when the operation started.
+ The UTC time that the operation started.
+
+
+ Gets status code of the current activity object.
+
+
+ Gets the status description of the current activity object.
+
+
+ Gets the list of tags that represent information to log along with the activity. This information is not passed on to the children of this activity.
+ A key-value pair enumeration of tags and objects.
+
+
+ Gets a collection of key/value pairs that represent information that will be logged along with the to the logging system.
+ Information that will be logged along with the to the logging system.
+
+
+ Gets the TraceId part of the .
+ The ID for the TraceId part of the , if the ID has the W3C format; otherwise, a zero TraceId.
+
+
+ When starting an Activity which does not have a parent context, the Trace Id will automatically be generated using random numbers.
+ TraceIdGenerator can be used to override the runtime's default Trace Id generation algorithm.
+
+
+ Gets or sets the W3C header.
+ The W3C header.
+
+
+ Enumerates the data stored on an object.
+ Type being enumerated.
+
+
+ Returns an enumerator that iterates through the data stored on an Activity object.
+
+ .
+
+
+ Advances the enumerator to the next element of the data.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+ Provides data for the event.
+
+
+ Gets the object after the event.
+
+
+ Gets the object before the event.
+
+
+ A representation that conforms to the W3C TraceContext specification. It contains two identifiers: a TraceId and a SpanId, along with a set of common TraceFlags and system-specific TraceState values.
+
+
+ Construct a new activity context instance using the specified arguments.
+ A trace identifier.
+ A span identifier.
+ Contain details about the trace.
+ Carries system-specific configuration data.
+ Indicates if the context is propagated from a remote parent.
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Determines whether this instance and a specified object have the same value.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Parses a W3C trace context headers to an object.
+ The W3C trace parent header.
+ The trace state.
+ The trace parent is invalid.
+ The object created from the parsing operation.
+
+
+ Tries to parse the W3C trace context headers to the object.
+ The W3C trace parent header.
+ The W3C trace state.
+
+ to propagate the context from the remote parent; otherwise, .
+ When this method returns, contains the object created from the parsing operation.
+
+ if the operation succeeds; otherwise.
+
+
+ Tries to parse the W3C trace context headers to an object.
+ The W3C trace parent header.
+ The W3C trace state.
+ When this method returns , the object created from the parsing operation.
+
+ if the parsing was successful; otherwise.
+
+
+ Indicates if the activity context was propagated from a remote parent.
+
+ if it was propagated from a remote parent; otherwise.
+
+
+ The Id of the request as known by the caller.
+ The Span Id in the context.
+
+
+ The flags defined by the W3C standard along with the ID for the activity.
+ The context tracing flags.
+
+
+ The trace identifier.
+ The tracing identifier in the context.
+
+
+ Holds the W3C 'tracestate' header.
+ A string representing the W3C 'tracestate' header.
+
+
+ Encapsulates all the information that is sent to the activity listener, to make decisions about the creation of the activity instance, as well as its state.
+
+The possible generic type parameters are or .
+ The type of the property. Should be either or .
+
+
+ Gets the activity kind which the activity will be created with.
+ One of the enumeration values that represent an activity kind.
+
+
+ Gets the enumeration of activity links that the activity will be created with.
+ An enumeration of activity links.
+
+
+ Gets the name to use as OperationName of the activity that will get created.
+ A string representing the activity name.
+
+
+ Gets the parent context or parent Id that the activity will get created with.
+ The parent of the activity, represented either as a or as an .
+
+
+ Gets the collection that is used to add more tags during the sampling process. The added tags are also added to the created Activity if it is decided that it should be created by the callbacks.
+ The Activity tags collection.
+
+
+ Gets the activity source that creates the activity.
+ An activity source object.
+
+
+ Gets the tags that the activity will be created with.
+ A key-value pair enumeration of tags associated with the activity.
+
+
+ Gets the trace Id to use in the Activity object if it is decided that it should be created by callbacks.
+ The trace Id.
+
+
+ Gets or initializes the trace state to use when creating the Activity.
+
+
+ Represents an event containing a name and a timestamp, as well as an optional list of tags.
+
+
+ Initializes a new activity event instance using the specified name and the current time as the event timestamp.
+ The event name.
+
+
+ Initializes a new activity event instance using the specified name, timestamp and tags.
+ The event name.
+ The event timestamp. Timestamp must only be used for the events that happened in the past, not at the moment of this call.
+ The event tags.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Gets the activity event name.
+ A string representing the activity event name.
+
+
+ Gets the collection of tags associated with the event.
+ A key-value pair enumeration containing the tags associated with the event.
+
+
+ Gets the activity event timestamp.
+ A datetime offset representing the activity event timestamp.
+
+
+ Specifies the format of the property.
+
+
+ The hierarchical format.
+
+
+ An unknown format.
+
+
+ The W3C format.
+
+
+ Describes the relationship between the activity, its parents and its children in a trace.
+
+
+ Outgoing request to the external component.
+
+
+ Output received from an external component.
+
+
+ Internal operation within an application, as opposed to operations with remote parents or children. This is the default value.
+
+
+ Output provided to external components.
+
+
+ Requests incoming from external component.
+
+
+ Activities may be linked to zero or more activity context instances that are causally related.
+
+Activity links can point to activity contexts inside a single trace or across different traces.
+
+Activity links can be used to represent batched operations where an activity was initiated by multiple initiating activities, each representing a single incoming item being processed in the batch.
+
+
+ Constructs a new activity link, which can be linked to an activity.
+ The trace activity context.
+ The key-value pair list of tags associated to the activity context.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Indicates whether the current activity link is equal to another activity link.
+ The activity link to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Indicates whether the current activity link is equal to another object.
+ The object to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Retrieves the activity context inside this activity link.
+
+
+ Retrieves the key-value pair enumeration of tags attached to the activity context.
+ An enumeration of tags attached to the activity context.
+
+
+ Allows listening to the start and stop activity events and gives the opportunity to decide creating an activity for sampling scenarios.
+
+
+ Construct a new activity listener object to start listeneing to the activity events.
+
+
+ Unregisters this activity listener object from listening to activity events.
+
+
+ Gets or sets the callback used to listen to the activity start event.
+ An activity callback instance used to listen to the activity start event.
+
+
+ Gets or sets the callback used to listen to the activity stop event.
+ An activity callback instance used to listen to the activity stop event.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that allows deciding if activity object events that were created using the activity source object should be listened or not.
+
+ to listen events; otherwise.
+
+
+ Enumeration values used by to indicate the amount of data to collect for the related . Requesting more data causes a greater performance overhead.
+
+
+ The activity object should be populated with all the propagation information and also all other properties such as Links, Tags, and Events. Using this value causes to return .
+
+
+ The activity object should be populated the same as the case. Additionally, Activity.Recorded is set to . For activities using the W3C trace ids, this sets a flag bit in the ID that will be propagated downstream requesting that the trace is recorded everywhere.
+
+
+ The activity object does not need to be created.
+
+
+ The activity object needs to be created. It will have a Name, a Source, an Id and Baggage. Other properties are unnecessary and will be ignored by this listener.
+
+
+ Provides APIs to create and start objects and to register objects to listen to the events.
+
+
+ Constructs an activity source object with the specified .
+ The name of the activity source object.
+ The version of the component publishing the tracing info.
+
+
+ Adds a listener to the activity starting and stopping events.
+ The activity listener object to use for listening to the activity events.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity
+ The
+ The created object or if there is no any event listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ If the Activity object is created, it will not automatically start. Callers will need to call to start it.
+ The operation name of the Activity.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity.
+ The
+ The parent Id to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Disposes the activity source object, removes the current instance from the global list, and empties the listeners list.
+
+
+ Checks if there are any listeners for this activity source.
+
+ if there is a listener registered for this activity source; otherwise, .
+
+
+ Creates and starts a new object if there is any listener to the Activity events, returns otherwise.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The optional start timestamp to set on the created Activity object.
+ The operation name of the Activity.
+ The created object or if there is no any listener.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name and activity kind.
+ The operation name of the activity.
+ The activity kind.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent activity context, tags, optional activity link and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent object to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent Id, tags, optional activity links and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent Id to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Returns the activity source name.
+ A string that represents the activity source name.
+
+
+ Returns the activity source version.
+ A string that represents the activity source version.
+
+
+ Represents a formatted based on a W3C standard.
+
+
+ Copies the 8 bytes of the current to a specified span.
+ The span to which the 8 bytes of the SpanID are to be copied.
+
+
+ Creates a new value from a read-only span of eight bytes.
+ A read-only span of eight bytes.
+
+ does not contain eight bytes.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of 16 hexadecimal characters.
+ A span that contains 16 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new span ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new span ID.
+
+
+ Determines whether this instance and the specified instance have the same value.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ the current instance and a specified object, which also must be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the SpanId.
+ The hash code of the SpanId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is the same as the SpanId of ; otherwise, .
+
+
+ Determine whether two specified instances have unequal values.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is different from the SpanId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Define the status code of the Activity which indicate the status of the instrumented operation.
+
+
+ Status code indicating an error is encountered during the operation.
+
+
+ Status code indicating the operation has been validated and completed successfully.
+
+
+ Unset status code is the default value indicating the status code is not initialized.
+
+
+ ActivityTagsCollection is a collection class used to store tracing tags.
+
+This collection will be used with classes like and .
+
+This collection behaves as follows:
+- The collection items will be ordered according to how they are added.
+- Don't allow duplication of items with the same key.
+- When using the indexer to store an item in the collection:
+ - If the item has a key that previously existed in the collection and the value is , the collection item matching the key will be removed from the collection.
+ - If the item has a key that previously existed in the collection and the value is not , the new item value will replace the old value stored in the collection.
+ - Otherwise, the item will be added to the collection.
+- Add method will add a new item to the collection if an item doesn't already exist with the same key. Otherwise, it will throw an exception.
+
+
+ Create a new instance of the collection.
+
+
+ Create a new instance of the collection and store the input list items in the collection.
+ Initial list to store in the collection.
+
+
+ Adds an item to the collection.
+ Key and value pair of the tag to add to the collection.
+
+ already exists in the list.
+
+ is .
+
+
+ Adds a tag with the provided key and value to the collection. This collection doesn't allow adding two tags with the same key.
+ The tag key.
+ The tag value.
+
+
+ Removes all items from the collection.
+
+
+ Determines whether the contains a specific value.
+ The object to locate in the .
+
+ if is found in the ; otherwise, .
+
+
+ Determines whether the collection contains an element with the specified key.
+ The key to locate in the .
+
+ if the collection contains tag with that key. otherwise.
+
+
+ Copies the elements of the collection to an array, starting at a particular array index.
+ The array that is the destination of the elements copied from collection.
+ The zero-based index in array at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator for the .
+
+
+ Removes the first occurrence of a specific item from the collection.
+ The tag key value pair to remove.
+
+ if item was successfully removed from the collection; otherwise, . This method also returns if item is not found in the original collection.
+
+
+ Removes the tag with the specified key from the collection.
+ The tag key.
+
+ if the item existed and removed. otherwise.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through the collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the value associated with the specified key.
+ The tag key.
+ The tag value.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.
+
+
+ Gets the number of elements contained in the collection.
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the collection is read-only. This always returns .
+ Always returns .
+
+
+ Gets or sets a specified collection item.
+
+ When setting a value to this indexer property, the following behavior is observed:
+- If the key previously existed in the collection and the value is , the collection item matching the key will get removed from the collection.
+- If the key previously existed in the collection and the value is not , the value will replace the old value stored in the collection.
+- Otherwise, a new item will get added to the collection.
+ The key of the value to get or set.
+ The object mapped to the key.
+
+
+ Get the list of the keys of all stored tags.
+ An containing the keys of the object that implements .
+
+
+ Get the list of the values of all stored tags.
+ An containing the values in the object that implements .
+
+
+ Enumerates the elements of an .
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Specifies flags defined by the W3C standard that are associated with an activity.
+
+
+ The activity has not been marked.
+
+
+ The activity (or more likely its parents) has been marked as useful to record.
+
+
+ Represents a whose format is based on a W3C standard.
+
+
+ Copies the 16 bytes of the current to a specified span.
+ The span to which the 16 bytes of the trace ID are to be copied.
+
+
+ Creates a new value from a read-only span of 16 bytes.
+ A read-only span of 16 bytes.
+
+ does not contain eight bytes.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of 32 hexadecimal characters.
+ A span that contains 32 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new trace ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new .
+
+
+ Determines whether the current instance and a specified are equal.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ Determines whether this instance and a specified object, which must also be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the TraceId.
+ The hash code of the TraceId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is the same as the TraceId of ; otherwise, .
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is different from the TraceId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Returns a 32-character hexadecimal string that represents this trace ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Provides an implementation of the abstract class that represents a named place to which a source sends its information (events).
+
+
+ Creates a new .
+ The name of this .
+
+
+ Disposes the NotificationListeners.
+
+
+ Determines whether there are any registered subscribers.
+
+ if there are any registered subscribers, otherwise.
+
+
+ Checks whether the is enabled.
+ The name of the event to check.
+
+ if notifications are enabled; otherwise, .
+
+
+ Checks if any subscriber to the diagnostic events is interested in receiving events with this name. Subscribers indicate their interest using a delegate provided in .
+ The name of the event to check.
+ The object that represents a context.
+ The object that represents a context.
+
+ if it is enabled, otherwise.
+
+
+ Invokes the OnActivityExport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Invokes the OnActivityImport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the incoming request.
+
+
+ Adds a subscriber.
+ A subscriber.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name and up to two context objects.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or to if an event filter is not desirable.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, optionally filters events based on their name and up to two context objects, and specifies methods to call when providers import or export activites from outside the process.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or if an event filter is not desirable.
+ An action delegate that receives the activity affected by an external event and an object that represents the incoming request.
+ An action delegate that receives the activity affected by an external event and an object that represents the outgoing request.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name.
+ A subscriber.
+ A delegate that filters events based on their name (). The delegate should return if the event is enabled.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Returns a string with the name of this DiagnosticListener.
+ The name of this DiagnosticListener.
+
+
+ Logs a notification.
+ The name of the event to log.
+ An object that represents the payload for the event.
+
+
+ Gets the collection of listeners for this .
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ An abstract class that allows code to be instrumented for production-time logging of rich data payloads for consumption within the process that was instrumented.
+
+
+ Initializes an instance of the class.
+
+
+ Verifies if the notification event is enabled.
+ The name of the event being written.
+
+ if the notification event is enabled, otherwise.
+
+
+ Verifies it the notification event is enabled.
+ The name of the event being written.
+ An object that represents the additional context for IsEnabled. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) to check if consumer wants to get notifications for such events at all. Based on that, producer may call IsEnabled(string, object, object) again with non- context.
+ Optional. An object that represents the additional context for IsEnabled. by default. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) or producer passed all necessary context in .
+
+ if the notification event is enabled, otherwise.
+
+
+ Transfers state from an activity to some event or operation, such as an outgoing HTTP request, that will occur outside the process.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Transfers state to an activity from some event or operation, such as an incoming request, that occurred outside the process.
+ The activity affected by an external event.
+ A payload that represents the incoming request.
+
+
+ Starts an and writes a start event.
+ The to be started.
+ An object that represent the value being passed as a payload for the event.
+ The started activity for convenient chaining.
+
+
+ Stops the given , maintains the global activity, and notifies consumers that the was stopped.
+ The activity to be stopped.
+ An object that represents the value passed as a payload for the event.
+
+
+ Provides a generic way of logging complex payloads.
+ The name of the event being written.
+ An object that represents the value being passed as a payload for the event. This is often an anonymous type which contains several sub-values.
+
+
+ An implementation of determines if and how distributed context information is encoded and decoded as it traverses the network.
+ The encoding can be transported over any network protocol that supports string key-value pairs. For example, when using HTTP, each key-value pair is an HTTP header.
+ injects values into and extracts values from carriers as string key-value pairs.
+
+
+ Initializes an instance of the class. This constructor is protected and only meant to be called from parent classes.
+
+
+ Returns the default propagator object that will be initialized with.
+ An instance of the class.
+
+
+ Returns a propagator that does not transmit any distributed context information in outbound network messages.
+ An instance of the class.
+
+
+ Returns a propagator that attempts to act transparently, emitting the same data on outbound network requests that was received on the inbound request.
+ When encoding the outbound message, this propagator uses information from the request's root Activity, ignoring any intermediate Activities that may have been created while processing the request.
+ An instance of the class.
+
+
+ Extracts the baggage key-value pair list from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation baggage list from the carrier.
+ Returns the extracted key-value pair list from the carrier.
+
+
+ Extracts the trace ID and trace state from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation trace ID and state from the carrier.
+ When this method returns, contains the trace ID extracted from the carrier.
+ When this method returns, contains the trace state extracted from the carrier.
+
+
+ Injects the trace values stroed in the object into a carrier. For example, into the headers of an HTTP request.
+ The Activity object has the distributed context to inject to the carrier.
+ The medium in which the distributed context will be stored.
+ The callback method to invoke to set a named key-value pair on the carrier.
+
+
+ Get or set the process-wide propagator object to use as the current selected propagator.
+ The currently selected process-wide propagator object.
+
+
+ Gets the set of field names this propagator is likely to read or write.
+ The list of fields that will be used by the DistributedContextPropagator
.
+
+
+ Represents the callback method that's used in the extract methods of propagators. The callback is invoked to look up the value of a named field.
+ The medium used by propagators to read values from.
+ The propagation field name.
+ When this method returns, contains the value that corresponds to . The value is non- if there is only one value for the input field name.
+ When this method returns, contains a collection of values that correspond to . The value is non- if there is more than one value for the input field name.
+
+
+ Represents the callback method that's used in propagators' inject methods. This callback is invoked to set the value of a named field.
+ Propagators may invoke it multiple times in order to set multiple fields.
+ The medium used by propagators to write values to.
+ The propagation field name.
+ The value corresponding to .
+
+
+ Represents an instrument that supports adding non-negative values. For example, you might call counter.Add(1) each time a request is processed to track the total number of requests. Most metric viewers display counters using a rate (requests/sec), by default, but can also display a cumulative total.
+ The type that the counter represents.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Adds the increment value of the measurement.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Represents a metrics instrument that can be used to report arbitrary values that are likely to be statistically meaningful, for example, the request duration. Call to create a Histogram object.
+ The type that the histogram represents.
+
+
+ Records a measurement value.
+ The measurement value.
+
+
+ Records a measurement value.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Base class of all metrics instrument classes
+
+
+ Protected constructor to initialize the common instrument properties like the meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Activates the instrument to start recording measurements and to allow listeners to start listening to such measurements.
+
+
+ Gets the instrument description.
+
+
+ Gets a value that indicates if there are any listeners for this instrument.
+
+
+ Gets a value that indicates whether the instrument is an observable instrument.
+
+
+ Gets the Meter that created the instrument.
+
+
+ Gets the instrument name.
+
+
+ Gets the instrument unit of measurements.
+
+
+ The base class for all non-observable instruments.
+ The type that the instrument represents.
+
+
+ Create the metrics instrument using the properties meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Stores one observed metrics value and its associated tags. This type is used by an Observable instrument's Observe() method when reporting current measurements.
+ The type that the measurement represents.
+
+
+ Initializes a new instance of using the specified value.
+ The measurement value.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Gets the measurement tags list.
+
+
+ Gets the measurement value.
+
+
+ A delegate to represent the Meterlistener callbacks that are used when recording measurements.
+ The instrument that sent the measurement.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+ The state object originally passed to method.
+ The type that the measurement represents.
+
+
+ Meter is the class responsible for creating and tracking the Instruments.
+
+
+ Initializes a new instance of using the specified meter name.
+ The Meter name.
+
+
+ Initializes a new instance of using the specified meter name and version.
+ The Meter name.
+ The optional Meter version.
+
+
+ Create a metrics Counter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new counter.
+
+
+ Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new histogram.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement..
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe()
is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+ Create a metrics UpDownCounter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new up down counter.
+
+
+ Dispose the Meter which will disable all instruments created by this meter.
+
+
+ Gets the Meter name.
+ The Meter name
+
+
+ Gets the Meter version.
+ The Meter version.
+
+
+ The MeterListener is class used to listen to the metrics instrument measurements recording.
+
+
+ Initializes a new instance of the class.
+
+
+ Stops listening to a specific instrument measurement recording.
+ The instrument to stop listening to.
+ The state object originally passed to method.
+
+
+ Disposes the listeners which will stop it from listening to any instrument.
+
+
+ Starts listening to a specific instrument measurement recording.
+ The instrument to listen to.
+ A state object that will be passed back to the callback getting measurements events.
+
+
+ Calls all Observable instruments that the listener is listening to, and calls with every collected measurement.
+
+
+ Sets a callback for a specific numeric type to get the measurement recording notification from all instruments which enabled listening and was created with the same specified numeric type.
+ If a measurement of type T is recorded and a callback of type T is registered, that callback will be used.
+ The callback which can be used to get measurement recording of numeric type T.
+ The type of the numeric measurement.
+
+
+ Enables the listener to start listening to instruments measurement recording.
+
+
+ Gets or sets the callback to get notified when an instrument is published.
+ The callback to get notified when an instrument is published.
+
+
+ Gets or sets the callback to get notified when the measurement is stopped on some instrument.
+ This can happen when the Meter or the Listener is disposed or calling on the listener.
+ The callback to get notified when the measurement is stopped on some instrument.
+
+
+ Represents a metrics-observable instrument that reports monotonically increasing values when the instrument is being observed, for example, CPU time (for different processes, threads, user mode, or kernel mode). Call to create the observable counter object.
+ The type that the observable counter represents.
+
+
+ Represents an observable instrument that reports non-additive values when the instrument is being observed, for example, the current room temperature. Call to create the observable counter object.
+
+
+
+ ObservableInstrument{T} is the base class from which all metrics observable instruments will inherit.
+ The type that the observable instrument represents.
+
+
+ Initializes a new instance of the class using the specified meter, name, description, and unit.
+ All classes that extend ObservableInstrument{T} must call this constructor when constructing objects of the extended class.
+ The meter that created the instrument.
+ The instrument name. cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+ Fetches the current measurements being tracked by this instrument. All classes extending ObservableInstrument{T} need to implement this method.
+ The current measurements tracked by this instrument.
+
+
+ Gets a value that indicates if the instrument is an observable instrument.
+
+ if the instrument is metrics-observable; otherwise.
+
+
+ A metrics-observable instrument that reports increasing or decreasing values when the instrument is being observed.
+Use this instrument to monitor the process heap size or the approximate number of items in a lock-free circular buffer, for example.
+To create an ObservableUpDownCounter object, use the methods.
+ The type that the counter represents.
+
+
+ An instrument that supports reporting positive or negative metric values.
+ UpDownCounter may be used in scenarios like reporting the change in active requests or queue size.
+ The type that the UpDownCounter represents.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A of tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A span of key-value pair tags associated with the measurement.
+
+
+ A delegate that defines the signature of the callbacks used in the sampling process.
+ The Activity creation options used by callbacks to decide creating the Activity object or not.
+ The type of the requested parent to create the Activity object with. Should be either a string or an instance.
+ An object containing the sampling results, which indicate the amount of data to collect for the related .
+
+
+ Represents a list of tags that can be accessed by index. Provides methods to search, sort, and manipulate lists.
+
+
+ Initializes a new instance of using the specified .
+ A span of tags to initialize the list with.
+
+
+ Adds a tag to the list.
+ The key-value pair of the tag to add to the list.
+
+
+ Adds a tag with the specified and to the list.
+ The tag key.
+ The tag value.
+
+
+ Removes all elements from the .
+
+
+ Determines whether a tag is in the .
+ The tag to locate in the .
+
+ if item is found in the ; otherwise, .
+
+
+ Copies the entire to a compatible one-dimensional array, starting at the specified index of the target array.
+ The one-dimensional Array that is the destination of the elements copied from . The Array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than 0 or greater than or equal to the length.
+
+
+ Copies the contents of this into a destination span.
+ The destination object.
+
+ The number of elements in the source is greater than the number of elements that the destination span.
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Searches for the specified tag and returns the zero-based index of the first occurrence within the entire .
+ The tag to locate in the .
+ The zero-based index of the first ocurrence of in the tag list.
+
+
+ Inserts an element into the at the specified index.
+ The zero-based index at which the item should be inserted.
+ The tag to insert.
+
+ is less than 0 or is greater than .
+
+
+ Removes the first occurrence of a specific object from the .
+ The tag to remove from the .
+
+ if is successfully removed; otherwise, . This method also returns if was not found in the .
+
+
+ Removes the element at the specified index of the .
+ The zero-based index of the element to remove.
+
+ index is less than 0 or is greater than .
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Gets the number of tags contained in the .
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the is read-only. This property will always return .
+
+ Always returns .
+
+
+ Gets or sets the tags at the specified index.
+ The item index.
+
+ is not a valid index in the .
+ The element at the specified index.
+
+
+ An enumerator for traversing a tag list collection.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Diagnostics.DiagnosticSource.7.0.2/useSharedDesignerContext.txt b/packages/System.Diagnostics.DiagnosticSource.7.0.2/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.IO.Pipelines.5.0.2/.signature.p7s b/packages/System.IO.Pipelines.5.0.2/.signature.p7s
new file mode 100644
index 0000000..97ce0d5
Binary files /dev/null and b/packages/System.IO.Pipelines.5.0.2/.signature.p7s differ
diff --git a/packages/System.IO.Pipelines.5.0.2/Icon.png b/packages/System.IO.Pipelines.5.0.2/Icon.png
new file mode 100644
index 0000000..a0f1fdb
Binary files /dev/null and b/packages/System.IO.Pipelines.5.0.2/Icon.png differ
diff --git a/packages/System.IO.Pipelines.5.0.2/LICENSE.TXT b/packages/System.IO.Pipelines.5.0.2/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/System.IO.Pipelines.5.0.2/LICENSE.TXT
@@ -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.
diff --git a/packages/System.IO.Pipelines.5.0.2/System.IO.Pipelines.5.0.2.nupkg b/packages/System.IO.Pipelines.5.0.2/System.IO.Pipelines.5.0.2.nupkg
new file mode 100644
index 0000000..7461929
Binary files /dev/null and b/packages/System.IO.Pipelines.5.0.2/System.IO.Pipelines.5.0.2.nupkg differ
diff --git a/packages/System.IO.Pipelines.5.0.2/THIRD-PARTY-NOTICES.TXT b/packages/System.IO.Pipelines.5.0.2/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..111dcf5
--- /dev/null
+++ b/packages/System.IO.Pipelines.5.0.2/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,884 @@
+.NET Runtime uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Runtime 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 ASP.NET
+-------------------------------
+
+Copyright (c) .NET Foundation. All rights reserved.
+Licensed under the Apache License, Version 2.0.
+
+Available at
+https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt
+
+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
+-------------------------------
+
+https://www.unicode.org/license.html
+
+Copyright © 1991-2020 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in https://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."
+
+License notice for Json.NET
+-------------------------------
+
+https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+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 vectorized base64 encoding / decoding
+--------------------------------------------------------
+
+Copyright (c) 2005-2007, Nick Galbreath
+Copyright (c) 2013-2017, Alfred Klomp
+Copyright (c) 2015-2017, Wojciech Mula
+Copyright (c) 2016-2017, Matthieu Darbois
+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.
+
+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 RFC 3492
+---------------------------
+
+The punycode implementation is based on the sample code in RFC 3492
+
+Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any
+kind, provided that the above copyright notice and this paragraph are
+included on all such copies and derivative works. However, this
+document itself may not be modified in any way, such as by removing
+the copyright notice or references to the Internet Society or other
+Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for
+copyrights defined in the Internet Standards process must be
+followed, or as required to translate it into languages other than
+English.
+
+The limited permissions granted above are perpetual and will not be
+revoked by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an
+"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+License notice for Algorithm from Internet Draft document "UUIDs and GUIDs"
+---------------------------------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, or Digital Equipment Corporation be used in advertising
+or publicity pertaining to distribution of the software without
+specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment
+Corporation makes any representations about the suitability of
+this software for any purpose.
+
+Copyright(C) The Internet Society 1997. All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others,
+and derivative works that comment on or otherwise explain it or assist in
+its implementation may be prepared, copied, published and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this paragraph are included on all such copies and
+derivative works.However, this document itself may not be modified in any
+way, such as by removing the copyright notice or references to the Internet
+Society or other Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for copyrights
+defined in the Internet Standards process must be followed, or as required
+to translate it into languages other than English.
+
+The limited permissions granted above are perpetual and will not be revoked
+by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+License notice for Algorithm from RFC 4122 -
+A Universally Unique IDentifier (UUID) URN Namespace
+----------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+Copyright (c) 1998 Microsoft.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, Microsoft, or Digital Equipment Corporation be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+Equipment Corporation makes any representations about the
+suitability of this software for any purpose."
+
+License notice for The LLVM Compiler Infrastructure
+---------------------------------------------------
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+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:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+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
+CONTRIBUTORS 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 WITH THE
+SOFTWARE.
+
+License notice for Bob Jenkins
+------------------------------
+
+By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+code any way you wish, private, educational, or commercial. It's free.
+
+License notice for Greg Parker
+------------------------------
+
+Greg Parker gparker@cs.stanford.edu December 2000
+This code is in the public domain and may be copied or modified without
+permission.
+
+License notice for libunwind based code
+----------------------------------------
+
+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 Printing Floating-Point Numbers (Dragon4)
+------------------------------------------------------------
+
+/******************************************************************************
+ Copyright (c) 2014 Ryan Juckett
+ http://www.ryanjuckett.com/
+
+ 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.
+******************************************************************************/
+
+License notice for Printing Floating-point Numbers (Grisu3)
+-----------------------------------------------------------
+
+Copyright 2012 the V8 project 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.
+
+License notice for xxHash
+-------------------------
+
+xxHash Library
+Copyright (c) 2012-2014, Yann Collet
+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.
+
+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 Berkeley SoftFloat Release 3e
+------------------------------------------------
+
+https://github.com/ucb-bar/berkeley-softfloat-3
+https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt
+
+License for Berkeley SoftFloat Release 3e
+
+John R. Hauser
+2018 January 20
+
+The following applies to the whole of SoftFloat Release 3e as well as to
+each source file individually.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California. 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.
+
+ 3. Neither the name of the University 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 REGENTS 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 REGENTS 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 Xorshift RNGs
+--------------------------------
+
+George Marsaglia
+2003-07-04
+Journal of Statistical Software
+License: http://creativecommons.org/licenses/by/3.0/
+
+https://www.jstatsoft.org/article/view/v008i14
+https://www.jstatsoft.org/index.php/jss/article/view/v008i14/xorshift.pdf
+
+License notice for Xorshift (Wikipedia)
+---------------------------------------
+
+https://en.wikipedia.org/wiki/Xorshift
+License: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License
+
+License for fastmod (https://github.com/lemire/fastmod)
+--------------------------------------
+
+ Copyright 2018 Daniel Lemire
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+License notice for The C++ REST SDK
+-----------------------------------
+
+C++ REST SDK
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+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.
+
+License notice for MessagePack-CSharp
+-------------------------------------
+
+MessagePack for C#
+
+MIT License
+
+Copyright (c) 2017 Yoshifumi Kawai
+
+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 lz4net
+-------------------------------------
+
+lz4net
+
+Copyright (c) 2013-2017, Milosz Krajewski
+
+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.
+
+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 Nerdbank.Streams
+-----------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) Andrew Arnott
+
+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 RapidJSON
+----------------------------
+
+Tencent is pleased to support the open source community by making RapidJSON available.
+
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
+
+Licensed under the MIT License (the "License"); you may not use this file except
+in compliance with the License. You may obtain a copy of the License at
+
+http://opensource.org/licenses/MIT
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+License notice for DirectX Math Library
+---------------------------------------
+
+https://github.com/microsoft/DirectXMath/blob/master/LICENSE
+
+ The MIT License (MIT)
+
+Copyright (c) 2011-2020 Microsoft Corp
+
+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 ldap4net
+---------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2018 Alexander Chermyanin
+
+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 vectorized sorting code
+------------------------------------------
+
+MIT License
+
+Copyright (c) 2020 Dan Shechter
+
+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.
+
diff --git a/packages/System.IO.Pipelines.5.0.2/lib/net461/System.IO.Pipelines.dll b/packages/System.IO.Pipelines.5.0.2/lib/net461/System.IO.Pipelines.dll
new file mode 100644
index 0000000..c534b2c
Binary files /dev/null and b/packages/System.IO.Pipelines.5.0.2/lib/net461/System.IO.Pipelines.dll differ
diff --git a/packages/System.IO.Pipelines.5.0.2/lib/net461/System.IO.Pipelines.xml b/packages/System.IO.Pipelines.5.0.2/lib/net461/System.IO.Pipelines.xml
new file mode 100644
index 0000000..c6f2b61
--- /dev/null
+++ b/packages/System.IO.Pipelines.5.0.2/lib/net461/System.IO.Pipelines.xml
@@ -0,0 +1,341 @@
+
+
+
+ System.IO.Pipelines
+
+
+
+ Result returned by call.
+
+
+ Initializes a new instance of struct setting the and flags.
+
+ to indicate the current operation that produced this was canceled by ; otherwise, .
+
+ to indicate the reader is no longer reading data written to the .
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the current operation was canceled; otherwise, .
+
+
+ Gets a value that indicates the reader is no longer reading data written to the .
+
+ if the reader is no longer reading data written to the ; otherwise, .
+
+
+ Defines a class that provides a duplex pipe from which data can be read from and written to.
+
+
+ Gets the half of the duplex pipe.
+
+
+ Gets the half of the duplex pipe.
+
+
+ The default and implementation.
+
+
+ Initializes a new instance of the class using as options.
+
+
+ Initializes a new instance of the class with the specified options.
+ The set of options for this pipe.
+
+
+ Resets the pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Represents a set of options.
+
+
+ Initializes a new instance of the class with the specified parameters.
+ The pool of memory blocks to be used for buffer management.
+ The to be used to execute callbacks and async continuations.
+ The used to execute callbacks and async continuations.
+ The number of bytes in the before starts blocking. A value of zero prevents from ever blocking, effectively making the number of bytes in the unlimited.
+ The number of bytes in the when stops blocking.
+ The minimum size of the segment requested from .
+
+ if asynchronous continuations should be executed on the they were captured on; otherwise. This takes precedence over the schedulers specified in and .
+
+
+ Gets the default instance of .
+ A object initialized with default parameters.
+
+
+ Gets the minimum size of the segment requested from the .
+ The minimum size of the segment requested from the .
+
+
+ Gets the number of bytes in the when starts blocking.
+ The number of bytes in the when starts blocking.
+
+
+ Gets the object used for buffer management.
+ A pool of memory blocks used for buffer management.
+
+
+ Gets the used to execute callbacks and async continuations.
+ A that is used to execute callbacks and async continuations.
+
+
+ Gets the number of bytes in the when stops blocking.
+ The number of bytes in the when stops blocking.
+
+
+ Gets a value that determines if asynchronous callbacks and continuations should be executed on the they were captured on. This takes precedence over the schedulers specified in and .
+
+ if asynchronous callbacks and continuations should be executed on the they were captured on; otherwise, .
+
+
+ Gets the used to execute callbacks and async continuations.
+ A object used to execute callbacks and async continuations.
+
+
+ Defines a class that provides access to a read side of pipe.
+
+
+ Initializes a new instance of the class.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.
+ Marks the extent of the data that has been successfully processed.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.
+ Marks the extent of the data that has been successfully processed.
+ Marks the extent of the data that has been read and examined.
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels to currently pending or if none is pending next call to , without completing the .
+
+
+ Signals to the producer that the consumer is done reading.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe reader instance as being complete, meaning no more data will be read from it.
+ An optional exception that indicates the failure that caused the reader to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a specified buffer size and cancellation token.
+ The pipe writer to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified stream, using a specified cancellation token.
+ The stream to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe reader will wrap.
+ The options to configure the pipe reader.
+ A that wraps the .
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Asynchronously reads a sequence of bytes from the current .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous read operation.
+
+
+ Attempts to synchronously read data the .
+ When this method returns , this value is set to a instance that represents the result of the read call; otherwise, this value is set to .
+
+ if data was available, or if the call was canceled or the writer was completed; otherwise, .
+
+
+ Abstraction for running and callbacks and continuations.
+
+
+ Initializes new a instance.
+
+
+ Requests to be run on scheduler with being passed in.
+ The single-parameter action delegate to schedule.
+ The parameter to pass to the delegate.
+
+
+ The implementation that runs callbacks inline.
+ A instance that runs callbacks inline.
+
+
+ The implementation that queues callbacks to the thread pool.
+ A instance that queues callbacks to the thread pool.
+
+
+ Defines a class that provides a pipeline to which data can be written.
+
+
+ Initializes a new instance of the class.
+
+
+ Notifies the that bytes were written to the output or . You must request a new buffer after calling to continue writing more data; you cannot write to a previously acquired buffer.
+ The number of bytes written to the or .
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels the pending operation. If there is none, cancels next operation, without completing the .
+
+
+ Marks the as being complete, meaning no more items will be written to it.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe writer instance as being complete, meaning no more data will be written to it.
+ An optional exception that indicates the failure that caused the pipeline to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the specified stream and writes them to the .
+ The stream from which the contents will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe writer will wrap.
+ The options to configure the pipe writer.
+ A that wraps the .
+
+
+ Makes bytes written available to and runs continuation.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents and wraps the asynchronous flush operation.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty memory buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A memory buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Writes the specified byte memory range to the pipe and makes data accessible to the .
+ The read-only byte memory region to write.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.
+
+
+ Represents the result of a call.
+
+
+ Creates a new instance of setting and flags.
+ The read-only sequence containing the bytes of data that were read in the call.
+ A flag that indicates if the operation that produced this was canceled by .
+ A flag that indicates whether the end of the data stream has been reached.
+
+
+ Gets the that was read.
+ A read-only sequence containing the bytes of data that were read in the call.
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the operation that produced this was canceled by ; otherwise, .
+
+
+ Gets a value that indicates whether the end of the data stream has been reached.
+
+ if the end of the data stream has been reached; otherwise, .
+
+
+ Provides extension methods for that support read and write operations directly into pipes.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a cancellation token.
+ The stream from which the contents of the current stream will be copied.
+ The writer to which the contents of the source stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, a minimum read size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+ The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ The buffer size.
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.
+ The minimum read size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ An integer representing the minimum buffer size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.IO.Pipelines.5.0.2/lib/netcoreapp3.0/System.IO.Pipelines.dll b/packages/System.IO.Pipelines.5.0.2/lib/netcoreapp3.0/System.IO.Pipelines.dll
new file mode 100644
index 0000000..937cddd
Binary files /dev/null and b/packages/System.IO.Pipelines.5.0.2/lib/netcoreapp3.0/System.IO.Pipelines.dll differ
diff --git a/packages/System.IO.Pipelines.5.0.2/lib/netcoreapp3.0/System.IO.Pipelines.xml b/packages/System.IO.Pipelines.5.0.2/lib/netcoreapp3.0/System.IO.Pipelines.xml
new file mode 100644
index 0000000..c6f2b61
--- /dev/null
+++ b/packages/System.IO.Pipelines.5.0.2/lib/netcoreapp3.0/System.IO.Pipelines.xml
@@ -0,0 +1,341 @@
+
+
+
+ System.IO.Pipelines
+
+
+
+ Result returned by call.
+
+
+ Initializes a new instance of struct setting the and flags.
+
+ to indicate the current operation that produced this was canceled by ; otherwise, .
+
+ to indicate the reader is no longer reading data written to the .
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the current operation was canceled; otherwise, .
+
+
+ Gets a value that indicates the reader is no longer reading data written to the .
+
+ if the reader is no longer reading data written to the ; otherwise, .
+
+
+ Defines a class that provides a duplex pipe from which data can be read from and written to.
+
+
+ Gets the half of the duplex pipe.
+
+
+ Gets the half of the duplex pipe.
+
+
+ The default and implementation.
+
+
+ Initializes a new instance of the class using as options.
+
+
+ Initializes a new instance of the class with the specified options.
+ The set of options for this pipe.
+
+
+ Resets the pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Represents a set of options.
+
+
+ Initializes a new instance of the class with the specified parameters.
+ The pool of memory blocks to be used for buffer management.
+ The to be used to execute callbacks and async continuations.
+ The used to execute callbacks and async continuations.
+ The number of bytes in the before starts blocking. A value of zero prevents from ever blocking, effectively making the number of bytes in the unlimited.
+ The number of bytes in the when stops blocking.
+ The minimum size of the segment requested from .
+
+ if asynchronous continuations should be executed on the they were captured on; otherwise. This takes precedence over the schedulers specified in and .
+
+
+ Gets the default instance of .
+ A object initialized with default parameters.
+
+
+ Gets the minimum size of the segment requested from the .
+ The minimum size of the segment requested from the .
+
+
+ Gets the number of bytes in the when starts blocking.
+ The number of bytes in the when starts blocking.
+
+
+ Gets the object used for buffer management.
+ A pool of memory blocks used for buffer management.
+
+
+ Gets the used to execute callbacks and async continuations.
+ A that is used to execute callbacks and async continuations.
+
+
+ Gets the number of bytes in the when stops blocking.
+ The number of bytes in the when stops blocking.
+
+
+ Gets a value that determines if asynchronous callbacks and continuations should be executed on the they were captured on. This takes precedence over the schedulers specified in and .
+
+ if asynchronous callbacks and continuations should be executed on the they were captured on; otherwise, .
+
+
+ Gets the used to execute callbacks and async continuations.
+ A object used to execute callbacks and async continuations.
+
+
+ Defines a class that provides access to a read side of pipe.
+
+
+ Initializes a new instance of the class.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.
+ Marks the extent of the data that has been successfully processed.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.
+ Marks the extent of the data that has been successfully processed.
+ Marks the extent of the data that has been read and examined.
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels to currently pending or if none is pending next call to , without completing the .
+
+
+ Signals to the producer that the consumer is done reading.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe reader instance as being complete, meaning no more data will be read from it.
+ An optional exception that indicates the failure that caused the reader to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a specified buffer size and cancellation token.
+ The pipe writer to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified stream, using a specified cancellation token.
+ The stream to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe reader will wrap.
+ The options to configure the pipe reader.
+ A that wraps the .
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Asynchronously reads a sequence of bytes from the current .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous read operation.
+
+
+ Attempts to synchronously read data the .
+ When this method returns , this value is set to a instance that represents the result of the read call; otherwise, this value is set to .
+
+ if data was available, or if the call was canceled or the writer was completed; otherwise, .
+
+
+ Abstraction for running and callbacks and continuations.
+
+
+ Initializes new a instance.
+
+
+ Requests to be run on scheduler with being passed in.
+ The single-parameter action delegate to schedule.
+ The parameter to pass to the delegate.
+
+
+ The implementation that runs callbacks inline.
+ A instance that runs callbacks inline.
+
+
+ The implementation that queues callbacks to the thread pool.
+ A instance that queues callbacks to the thread pool.
+
+
+ Defines a class that provides a pipeline to which data can be written.
+
+
+ Initializes a new instance of the class.
+
+
+ Notifies the that bytes were written to the output or . You must request a new buffer after calling to continue writing more data; you cannot write to a previously acquired buffer.
+ The number of bytes written to the or .
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels the pending operation. If there is none, cancels next operation, without completing the .
+
+
+ Marks the as being complete, meaning no more items will be written to it.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe writer instance as being complete, meaning no more data will be written to it.
+ An optional exception that indicates the failure that caused the pipeline to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the specified stream and writes them to the .
+ The stream from which the contents will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe writer will wrap.
+ The options to configure the pipe writer.
+ A that wraps the .
+
+
+ Makes bytes written available to and runs continuation.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents and wraps the asynchronous flush operation.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty memory buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A memory buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Writes the specified byte memory range to the pipe and makes data accessible to the .
+ The read-only byte memory region to write.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.
+
+
+ Represents the result of a call.
+
+
+ Creates a new instance of setting and flags.
+ The read-only sequence containing the bytes of data that were read in the call.
+ A flag that indicates if the operation that produced this was canceled by .
+ A flag that indicates whether the end of the data stream has been reached.
+
+
+ Gets the that was read.
+ A read-only sequence containing the bytes of data that were read in the call.
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the operation that produced this was canceled by ; otherwise, .
+
+
+ Gets a value that indicates whether the end of the data stream has been reached.
+
+ if the end of the data stream has been reached; otherwise, .
+
+
+ Provides extension methods for that support read and write operations directly into pipes.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a cancellation token.
+ The stream from which the contents of the current stream will be copied.
+ The writer to which the contents of the source stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, a minimum read size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+ The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ The buffer size.
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.
+ The minimum read size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ An integer representing the minimum buffer size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.IO.Pipelines.5.0.2/lib/netstandard1.3/System.IO.Pipelines.dll b/packages/System.IO.Pipelines.5.0.2/lib/netstandard1.3/System.IO.Pipelines.dll
new file mode 100644
index 0000000..5f184ff
Binary files /dev/null and b/packages/System.IO.Pipelines.5.0.2/lib/netstandard1.3/System.IO.Pipelines.dll differ
diff --git a/packages/System.IO.Pipelines.5.0.2/lib/netstandard1.3/System.IO.Pipelines.xml b/packages/System.IO.Pipelines.5.0.2/lib/netstandard1.3/System.IO.Pipelines.xml
new file mode 100644
index 0000000..4fb5908
--- /dev/null
+++ b/packages/System.IO.Pipelines.5.0.2/lib/netstandard1.3/System.IO.Pipelines.xml
@@ -0,0 +1,304 @@
+
+
+
+ System.IO.Pipelines
+
+
+
+
+ The Start represents the offset into AvailableMemory where the range of "active" bytes begins. At the point when the block is leased
+ the Start is guaranteed to be equal to 0. The value of Start may be assigned anywhere between 0 and
+ AvailableMemory.Length, and must be equal to or less than End.
+
+
+
+
+ The End represents the offset into AvailableMemory where the range of "active" bytes ends. At the point when the block is leased
+ the End is guaranteed to be equal to Start. The value of Start may be assigned anywhere between 0 and
+ Buffer.Length, and must be equal to or less than End.
+
+
+
+
+ Reference to the next block of data when the overall "active" bytes spans multiple blocks. At the point when the block is
+ leased Next is guaranteed to be null. Start, End, and Next are used together in order to create a linked-list of discontiguous
+ working memory. The "active" memory is grown when bytes are copied in, End is increased, and Next is assigned. The "active"
+ memory is shrunk when bytes are consumed, Start is increased, and blocks are returned to the pool.
+
+
+
+
+ If true, data should not be written into the backing block after the End offset. Data between start and end should never be modified
+ since this would break cloning.
+
+
+
+
+ The amount of writable bytes in this segment. It is the amount of bytes between Length and End
+
+
+
+
+ Result returned by call
+
+
+
+
+ Creates a new instance of setting and flags
+
+
+
+
+ True if the current operation was canceled, otherwise false.
+
+
+
+
+ True if the is complete otherwise false
+
+
+
+
+ Defines a class that provides a duplex pipe from which data can be read from and written to.
+
+
+
+
+ Gets the half of the duplex pipe.
+
+
+
+
+ Gets the half of the duplex pipe.
+
+
+
+
+ Default and implementation.
+
+
+ Default and implementation.
+
+
+ Default and implementation.
+
+
+
+
+ Initializes the using as options.
+
+
+
+
+ Initializes the with the specified .
+
+
+
+
+ Gets the for this pipe.
+
+
+
+
+ Gets the for this pipe.
+
+
+
+
+ Resets the pipe
+
+
+
+
+ Represents a set of options
+
+
+
+
+ Default instance of
+
+
+
+
+ Creates a new instance of
+
+
+
+
+ Gets a value that determines if asynchronous callbacks should be executed on the they were captured on.
+ This takes precedence over the schedulers specified in and .
+
+
+
+
+ Gets amount of bytes in when starts blocking
+
+
+
+
+ Gets amount of bytes in when stops blocking
+
+
+
+
+ Gets minimum size of segment requested from
+
+
+
+
+ Gets the used to execute callbacks
+
+
+
+
+ Gets the used to execute callbacks
+
+
+
+
+ Gets the instances used for buffer management
+
+
+
+
+ Defines a class that provides access to a read side of pipe.
+
+
+
+
+ Attempt to synchronously read data the .
+
+ The
+ True if data was available, or if the call was canceled or the writer was completed.
+ If the pipe returns false, there's no need to call .
+
+
+
+ Asynchronously reads a sequence of bytes from the current .
+
+ A representing the asynchronous read operation.
+
+
+
+ Moves forward the pipeline's read cursor to after the consumed data.
+
+ Marks the extent of the data that has been successfully processed.
+
+ The memory for the consumed data will be released and no longer available.
+ The examined data communicates to the pipeline when it should signal more data is available.
+
+
+
+
+ Moves forward the pipeline's read cursor to after the consumed data.
+
+ Marks the extent of the data that has been successfully processed.
+ Marks the extent of the data that has been read and examined.
+
+ The memory for the consumed data will be released and no longer available.
+ The examined data communicates to the pipeline when it should signal more data is available.
+
+
+
+
+ Cancel to currently pending or if none is pending next call to , without completing the .
+
+
+
+
+ Signal to the producer that the consumer is done reading.
+
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+
+ Cancel the pending operation. If there is none, cancels next operation, without completing the .
+
+
+
+
+ Abstraction for running and callbacks and continuations
+
+
+
+
+ The implementation that queues callbacks to thread pool
+
+
+
+
+ The implementation that runs callbacks inline
+
+
+
+
+ Requests to be run on scheduler with being passed in
+
+
+
+
+ Defines a class that provides a pipeline to which data can be written.
+
+
+
+
+ Marks the as being complete, meaning no more items will be written to it.
+
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+
+ Cancel the pending operation. If there is none, cancels next operation, without completing the .
+
+
+
+
+ Registers a callback that gets executed when the side of the pipe is completed
+
+
+
+
+ Makes bytes written available to and runs continuation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes to the pipe and makes data accessible to
+
+
+
+
+ The result of a call.
+
+
+
+
+ Creates a new instance of setting and flags
+
+
+
+
+ The that was read
+
+
+
+
+ True if the current operation was canceled, otherwise false.
+
+
+
+
+ True if the is complete
+
+
+
+
diff --git a/packages/System.IO.Pipelines.5.0.2/lib/netstandard2.0/System.IO.Pipelines.dll b/packages/System.IO.Pipelines.5.0.2/lib/netstandard2.0/System.IO.Pipelines.dll
new file mode 100644
index 0000000..52e65f4
Binary files /dev/null and b/packages/System.IO.Pipelines.5.0.2/lib/netstandard2.0/System.IO.Pipelines.dll differ
diff --git a/packages/System.IO.Pipelines.5.0.2/lib/netstandard2.0/System.IO.Pipelines.xml b/packages/System.IO.Pipelines.5.0.2/lib/netstandard2.0/System.IO.Pipelines.xml
new file mode 100644
index 0000000..c6f2b61
--- /dev/null
+++ b/packages/System.IO.Pipelines.5.0.2/lib/netstandard2.0/System.IO.Pipelines.xml
@@ -0,0 +1,341 @@
+
+
+
+ System.IO.Pipelines
+
+
+
+ Result returned by call.
+
+
+ Initializes a new instance of struct setting the and flags.
+
+ to indicate the current operation that produced this was canceled by ; otherwise, .
+
+ to indicate the reader is no longer reading data written to the .
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the current operation was canceled; otherwise, .
+
+
+ Gets a value that indicates the reader is no longer reading data written to the .
+
+ if the reader is no longer reading data written to the ; otherwise, .
+
+
+ Defines a class that provides a duplex pipe from which data can be read from and written to.
+
+
+ Gets the half of the duplex pipe.
+
+
+ Gets the half of the duplex pipe.
+
+
+ The default and implementation.
+
+
+ Initializes a new instance of the class using as options.
+
+
+ Initializes a new instance of the class with the specified options.
+ The set of options for this pipe.
+
+
+ Resets the pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Represents a set of options.
+
+
+ Initializes a new instance of the class with the specified parameters.
+ The pool of memory blocks to be used for buffer management.
+ The to be used to execute callbacks and async continuations.
+ The used to execute callbacks and async continuations.
+ The number of bytes in the before starts blocking. A value of zero prevents from ever blocking, effectively making the number of bytes in the unlimited.
+ The number of bytes in the when stops blocking.
+ The minimum size of the segment requested from .
+
+ if asynchronous continuations should be executed on the they were captured on; otherwise. This takes precedence over the schedulers specified in and .
+
+
+ Gets the default instance of .
+ A object initialized with default parameters.
+
+
+ Gets the minimum size of the segment requested from the .
+ The minimum size of the segment requested from the .
+
+
+ Gets the number of bytes in the when starts blocking.
+ The number of bytes in the when starts blocking.
+
+
+ Gets the object used for buffer management.
+ A pool of memory blocks used for buffer management.
+
+
+ Gets the used to execute callbacks and async continuations.
+ A that is used to execute callbacks and async continuations.
+
+
+ Gets the number of bytes in the when stops blocking.
+ The number of bytes in the when stops blocking.
+
+
+ Gets a value that determines if asynchronous callbacks and continuations should be executed on the they were captured on. This takes precedence over the schedulers specified in and .
+
+ if asynchronous callbacks and continuations should be executed on the they were captured on; otherwise, .
+
+
+ Gets the used to execute callbacks and async continuations.
+ A object used to execute callbacks and async continuations.
+
+
+ Defines a class that provides access to a read side of pipe.
+
+
+ Initializes a new instance of the class.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.
+ Marks the extent of the data that has been successfully processed.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.
+ Marks the extent of the data that has been successfully processed.
+ Marks the extent of the data that has been read and examined.
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels to currently pending or if none is pending next call to , without completing the .
+
+
+ Signals to the producer that the consumer is done reading.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe reader instance as being complete, meaning no more data will be read from it.
+ An optional exception that indicates the failure that caused the reader to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a specified buffer size and cancellation token.
+ The pipe writer to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified stream, using a specified cancellation token.
+ The stream to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe reader will wrap.
+ The options to configure the pipe reader.
+ A that wraps the .
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Asynchronously reads a sequence of bytes from the current .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous read operation.
+
+
+ Attempts to synchronously read data the .
+ When this method returns , this value is set to a instance that represents the result of the read call; otherwise, this value is set to .
+
+ if data was available, or if the call was canceled or the writer was completed; otherwise, .
+
+
+ Abstraction for running and callbacks and continuations.
+
+
+ Initializes new a instance.
+
+
+ Requests to be run on scheduler with being passed in.
+ The single-parameter action delegate to schedule.
+ The parameter to pass to the delegate.
+
+
+ The implementation that runs callbacks inline.
+ A instance that runs callbacks inline.
+
+
+ The implementation that queues callbacks to the thread pool.
+ A instance that queues callbacks to the thread pool.
+
+
+ Defines a class that provides a pipeline to which data can be written.
+
+
+ Initializes a new instance of the class.
+
+
+ Notifies the that bytes were written to the output or . You must request a new buffer after calling to continue writing more data; you cannot write to a previously acquired buffer.
+ The number of bytes written to the or .
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels the pending operation. If there is none, cancels next operation, without completing the .
+
+
+ Marks the as being complete, meaning no more items will be written to it.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe writer instance as being complete, meaning no more data will be written to it.
+ An optional exception that indicates the failure that caused the pipeline to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the specified stream and writes them to the .
+ The stream from which the contents will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe writer will wrap.
+ The options to configure the pipe writer.
+ A that wraps the .
+
+
+ Makes bytes written available to and runs continuation.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents and wraps the asynchronous flush operation.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty memory buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A memory buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Writes the specified byte memory range to the pipe and makes data accessible to the .
+ The read-only byte memory region to write.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.
+
+
+ Represents the result of a call.
+
+
+ Creates a new instance of setting and flags.
+ The read-only sequence containing the bytes of data that were read in the call.
+ A flag that indicates if the operation that produced this was canceled by .
+ A flag that indicates whether the end of the data stream has been reached.
+
+
+ Gets the that was read.
+ A read-only sequence containing the bytes of data that were read in the call.
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the operation that produced this was canceled by ; otherwise, .
+
+
+ Gets a value that indicates whether the end of the data stream has been reached.
+
+ if the end of the data stream has been reached; otherwise, .
+
+
+ Provides extension methods for that support read and write operations directly into pipes.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a cancellation token.
+ The stream from which the contents of the current stream will be copied.
+ The writer to which the contents of the source stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, a minimum read size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+ The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ The buffer size.
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.
+ The minimum read size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ An integer representing the minimum buffer size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.IO.Pipelines.5.0.2/ref/netcoreapp2.0/System.IO.Pipelines.dll b/packages/System.IO.Pipelines.5.0.2/ref/netcoreapp2.0/System.IO.Pipelines.dll
new file mode 100644
index 0000000..e457bdf
Binary files /dev/null and b/packages/System.IO.Pipelines.5.0.2/ref/netcoreapp2.0/System.IO.Pipelines.dll differ
diff --git a/packages/System.IO.Pipelines.5.0.2/ref/netcoreapp2.0/System.IO.Pipelines.xml b/packages/System.IO.Pipelines.5.0.2/ref/netcoreapp2.0/System.IO.Pipelines.xml
new file mode 100644
index 0000000..c6f2b61
--- /dev/null
+++ b/packages/System.IO.Pipelines.5.0.2/ref/netcoreapp2.0/System.IO.Pipelines.xml
@@ -0,0 +1,341 @@
+
+
+
+ System.IO.Pipelines
+
+
+
+ Result returned by call.
+
+
+ Initializes a new instance of struct setting the and flags.
+
+ to indicate the current operation that produced this was canceled by ; otherwise, .
+
+ to indicate the reader is no longer reading data written to the .
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the current operation was canceled; otherwise, .
+
+
+ Gets a value that indicates the reader is no longer reading data written to the .
+
+ if the reader is no longer reading data written to the ; otherwise, .
+
+
+ Defines a class that provides a duplex pipe from which data can be read from and written to.
+
+
+ Gets the half of the duplex pipe.
+
+
+ Gets the half of the duplex pipe.
+
+
+ The default and implementation.
+
+
+ Initializes a new instance of the class using as options.
+
+
+ Initializes a new instance of the class with the specified options.
+ The set of options for this pipe.
+
+
+ Resets the pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Represents a set of options.
+
+
+ Initializes a new instance of the class with the specified parameters.
+ The pool of memory blocks to be used for buffer management.
+ The to be used to execute callbacks and async continuations.
+ The used to execute callbacks and async continuations.
+ The number of bytes in the before starts blocking. A value of zero prevents from ever blocking, effectively making the number of bytes in the unlimited.
+ The number of bytes in the when stops blocking.
+ The minimum size of the segment requested from .
+
+ if asynchronous continuations should be executed on the they were captured on; otherwise. This takes precedence over the schedulers specified in and .
+
+
+ Gets the default instance of .
+ A object initialized with default parameters.
+
+
+ Gets the minimum size of the segment requested from the .
+ The minimum size of the segment requested from the .
+
+
+ Gets the number of bytes in the when starts blocking.
+ The number of bytes in the when starts blocking.
+
+
+ Gets the object used for buffer management.
+ A pool of memory blocks used for buffer management.
+
+
+ Gets the used to execute callbacks and async continuations.
+ A that is used to execute callbacks and async continuations.
+
+
+ Gets the number of bytes in the when stops blocking.
+ The number of bytes in the when stops blocking.
+
+
+ Gets a value that determines if asynchronous callbacks and continuations should be executed on the they were captured on. This takes precedence over the schedulers specified in and .
+
+ if asynchronous callbacks and continuations should be executed on the they were captured on; otherwise, .
+
+
+ Gets the used to execute callbacks and async continuations.
+ A object used to execute callbacks and async continuations.
+
+
+ Defines a class that provides access to a read side of pipe.
+
+
+ Initializes a new instance of the class.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.
+ Marks the extent of the data that has been successfully processed.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.
+ Marks the extent of the data that has been successfully processed.
+ Marks the extent of the data that has been read and examined.
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels to currently pending or if none is pending next call to , without completing the .
+
+
+ Signals to the producer that the consumer is done reading.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe reader instance as being complete, meaning no more data will be read from it.
+ An optional exception that indicates the failure that caused the reader to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a specified buffer size and cancellation token.
+ The pipe writer to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified stream, using a specified cancellation token.
+ The stream to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe reader will wrap.
+ The options to configure the pipe reader.
+ A that wraps the .
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Asynchronously reads a sequence of bytes from the current .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous read operation.
+
+
+ Attempts to synchronously read data the .
+ When this method returns , this value is set to a instance that represents the result of the read call; otherwise, this value is set to .
+
+ if data was available, or if the call was canceled or the writer was completed; otherwise, .
+
+
+ Abstraction for running and callbacks and continuations.
+
+
+ Initializes new a instance.
+
+
+ Requests to be run on scheduler with being passed in.
+ The single-parameter action delegate to schedule.
+ The parameter to pass to the delegate.
+
+
+ The implementation that runs callbacks inline.
+ A instance that runs callbacks inline.
+
+
+ The implementation that queues callbacks to the thread pool.
+ A instance that queues callbacks to the thread pool.
+
+
+ Defines a class that provides a pipeline to which data can be written.
+
+
+ Initializes a new instance of the class.
+
+
+ Notifies the that bytes were written to the output or . You must request a new buffer after calling to continue writing more data; you cannot write to a previously acquired buffer.
+ The number of bytes written to the or .
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels the pending operation. If there is none, cancels next operation, without completing the .
+
+
+ Marks the as being complete, meaning no more items will be written to it.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe writer instance as being complete, meaning no more data will be written to it.
+ An optional exception that indicates the failure that caused the pipeline to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the specified stream and writes them to the .
+ The stream from which the contents will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe writer will wrap.
+ The options to configure the pipe writer.
+ A that wraps the .
+
+
+ Makes bytes written available to and runs continuation.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents and wraps the asynchronous flush operation.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty memory buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A memory buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Writes the specified byte memory range to the pipe and makes data accessible to the .
+ The read-only byte memory region to write.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.
+
+
+ Represents the result of a call.
+
+
+ Creates a new instance of setting and flags.
+ The read-only sequence containing the bytes of data that were read in the call.
+ A flag that indicates if the operation that produced this was canceled by .
+ A flag that indicates whether the end of the data stream has been reached.
+
+
+ Gets the that was read.
+ A read-only sequence containing the bytes of data that were read in the call.
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the operation that produced this was canceled by ; otherwise, .
+
+
+ Gets a value that indicates whether the end of the data stream has been reached.
+
+ if the end of the data stream has been reached; otherwise, .
+
+
+ Provides extension methods for that support read and write operations directly into pipes.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a cancellation token.
+ The stream from which the contents of the current stream will be copied.
+ The writer to which the contents of the source stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, a minimum read size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+ The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ The buffer size.
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.
+ The minimum read size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ An integer representing the minimum buffer size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+
\ No newline at end of file
diff --git a/packages/System.IO.Pipelines.5.0.2/useSharedDesignerContext.txt b/packages/System.IO.Pipelines.5.0.2/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.IO.Pipelines.5.0.2/version.txt b/packages/System.IO.Pipelines.5.0.2/version.txt
new file mode 100644
index 0000000..1e1afca
--- /dev/null
+++ b/packages/System.IO.Pipelines.5.0.2/version.txt
@@ -0,0 +1 @@
+3065735be79d6b7d17e8e3a723115810b43c9b3a
diff --git a/packages/System.Memory.4.5.5/.signature.p7s b/packages/System.Memory.4.5.5/.signature.p7s
new file mode 100644
index 0000000..40dcb3e
Binary files /dev/null and b/packages/System.Memory.4.5.5/.signature.p7s differ
diff --git a/packages/System.Memory.4.5.5/LICENSE.TXT b/packages/System.Memory.4.5.5/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/System.Memory.4.5.5/LICENSE.TXT
@@ -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.
diff --git a/packages/System.Memory.4.5.5/System.Memory.4.5.5.nupkg b/packages/System.Memory.4.5.5/System.Memory.4.5.5.nupkg
new file mode 100644
index 0000000..9d654e2
Binary files /dev/null and b/packages/System.Memory.4.5.5/System.Memory.4.5.5.nupkg differ
diff --git a/packages/System.Memory.4.5.5/THIRD-PARTY-NOTICES.TXT b/packages/System.Memory.4.5.5/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..db542ca
--- /dev/null
+++ b/packages/System.Memory.4.5.5/THIRD-PARTY-NOTICES.TXT
@@ -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."
+
diff --git a/packages/System.Memory.4.5.5/lib/net461/System.Memory.dll b/packages/System.Memory.4.5.5/lib/net461/System.Memory.dll
new file mode 100644
index 0000000..4617199
Binary files /dev/null and b/packages/System.Memory.4.5.5/lib/net461/System.Memory.dll differ
diff --git a/packages/System.Memory.4.5.5/lib/net461/System.Memory.xml b/packages/System.Memory.4.5.5/lib/net461/System.Memory.xml
new file mode 100644
index 0000000..4d12fd7
--- /dev/null
+++ b/packages/System.Memory.4.5.5/lib/net461/System.Memory.xml
@@ -0,0 +1,355 @@
+
+
+ System.Memory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Memory.4.5.5/lib/netcoreapp2.1/_._ b/packages/System.Memory.4.5.5/lib/netcoreapp2.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Memory.4.5.5/lib/netstandard1.1/System.Memory.dll b/packages/System.Memory.4.5.5/lib/netstandard1.1/System.Memory.dll
new file mode 100644
index 0000000..31486d6
Binary files /dev/null and b/packages/System.Memory.4.5.5/lib/netstandard1.1/System.Memory.dll differ
diff --git a/packages/System.Memory.4.5.5/lib/netstandard1.1/System.Memory.xml b/packages/System.Memory.4.5.5/lib/netstandard1.1/System.Memory.xml
new file mode 100644
index 0000000..4d12fd7
--- /dev/null
+++ b/packages/System.Memory.4.5.5/lib/netstandard1.1/System.Memory.xml
@@ -0,0 +1,355 @@
+
+
+ System.Memory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Memory.4.5.5/lib/netstandard2.0/System.Memory.dll b/packages/System.Memory.4.5.5/lib/netstandard2.0/System.Memory.dll
new file mode 100644
index 0000000..1e6aef8
Binary files /dev/null and b/packages/System.Memory.4.5.5/lib/netstandard2.0/System.Memory.dll differ
diff --git a/packages/System.Memory.4.5.5/lib/netstandard2.0/System.Memory.xml b/packages/System.Memory.4.5.5/lib/netstandard2.0/System.Memory.xml
new file mode 100644
index 0000000..4d12fd7
--- /dev/null
+++ b/packages/System.Memory.4.5.5/lib/netstandard2.0/System.Memory.xml
@@ -0,0 +1,355 @@
+
+
+ System.Memory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Memory.4.5.5/ref/netcoreapp2.1/_._ b/packages/System.Memory.4.5.5/ref/netcoreapp2.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Memory.4.5.5/useSharedDesignerContext.txt b/packages/System.Memory.4.5.5/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Memory.4.5.5/version.txt b/packages/System.Memory.4.5.5/version.txt
new file mode 100644
index 0000000..b46e477
--- /dev/null
+++ b/packages/System.Memory.4.5.5/version.txt
@@ -0,0 +1 @@
+32b491939fbd125f304031c35038b1e14b4e3958
diff --git a/packages/System.Numerics.Vectors.4.5.0/.signature.p7s b/packages/System.Numerics.Vectors.4.5.0/.signature.p7s
new file mode 100644
index 0000000..a945f63
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/.signature.p7s differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/LICENSE.TXT b/packages/System.Numerics.Vectors.4.5.0/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/LICENSE.TXT
@@ -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.
diff --git a/packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg b/packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg
new file mode 100644
index 0000000..0ef4637
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/System.Numerics.Vectors.4.5.0.nupkg differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/THIRD-PARTY-NOTICES.TXT b/packages/System.Numerics.Vectors.4.5.0/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..db542ca
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/THIRD-PARTY-NOTICES.TXT
@@ -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."
+
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/MonoAndroid10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/MonoTouch10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..0865972
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/lib/net46/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/netcoreapp2.0/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/netcoreapp2.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..433aa36
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard1.0/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..1020577
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/lib/netstandard2.0/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..433aa36
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/uap10.0.16299/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/uap10.0.16299/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/xamarinios10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/xamarinmac20/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/xamarintvos10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/lib/xamarinwatchos10/_._ b/packages/System.Numerics.Vectors.4.5.0/lib/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/MonoAndroid10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/MonoTouch10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..e237afb
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/ref/net45/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..470f2f3
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/ref/net46/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/netcoreapp2.0/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/netcoreapp2.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..d174da0
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard1.0/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..ba0aa0c
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/ref/netstandard2.0/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/uap10.0.16299/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/uap10.0.16299/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/xamarinios10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/xamarinmac20/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/xamarintvos10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/ref/xamarinwatchos10/_._ b/packages/System.Numerics.Vectors.4.5.0/ref/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/useSharedDesignerContext.txt b/packages/System.Numerics.Vectors.4.5.0/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.5.0/version.txt b/packages/System.Numerics.Vectors.4.5.0/version.txt
new file mode 100644
index 0000000..47004a0
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.5.0/version.txt
@@ -0,0 +1 @@
+30ab651fcb4354552bd4891619a0bdd81e0ebdbf
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/.signature.p7s b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/.signature.p7s
new file mode 100644
index 0000000..2a015f9
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/.signature.p7s differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/Icon.png b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/Icon.png
new file mode 100644
index 0000000..a0f1fdb
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/Icon.png differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT
@@ -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.
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.6.0.0.nupkg b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.6.0.0.nupkg
new file mode 100644
index 0000000..3052c31
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.6.0.0.nupkg differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..89c59b2
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,939 @@
+.NET Runtime uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Runtime 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 ASP.NET
+-------------------------------
+
+Copyright (c) .NET Foundation. All rights reserved.
+Licensed under the Apache License, Version 2.0.
+
+Available at
+https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt
+
+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
+-------------------------------
+
+https://www.unicode.org/license.html
+
+Copyright © 1991-2020 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in https://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."
+
+License notice for Json.NET
+-------------------------------
+
+https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+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 vectorized base64 encoding / decoding
+--------------------------------------------------------
+
+Copyright (c) 2005-2007, Nick Galbreath
+Copyright (c) 2013-2017, Alfred Klomp
+Copyright (c) 2015-2017, Wojciech Mula
+Copyright (c) 2016-2017, Matthieu Darbois
+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.
+
+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 RFC 3492
+---------------------------
+
+The punycode implementation is based on the sample code in RFC 3492
+
+Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any
+kind, provided that the above copyright notice and this paragraph are
+included on all such copies and derivative works. However, this
+document itself may not be modified in any way, such as by removing
+the copyright notice or references to the Internet Society or other
+Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for
+copyrights defined in the Internet Standards process must be
+followed, or as required to translate it into languages other than
+English.
+
+The limited permissions granted above are perpetual and will not be
+revoked by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an
+"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+License notice for Algorithm from Internet Draft document "UUIDs and GUIDs"
+---------------------------------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, or Digital Equipment Corporation be used in advertising
+or publicity pertaining to distribution of the software without
+specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment
+Corporation makes any representations about the suitability of
+this software for any purpose.
+
+Copyright(C) The Internet Society 1997. All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others,
+and derivative works that comment on or otherwise explain it or assist in
+its implementation may be prepared, copied, published and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this paragraph are included on all such copies and
+derivative works.However, this document itself may not be modified in any
+way, such as by removing the copyright notice or references to the Internet
+Society or other Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for copyrights
+defined in the Internet Standards process must be followed, or as required
+to translate it into languages other than English.
+
+The limited permissions granted above are perpetual and will not be revoked
+by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+License notice for Algorithm from RFC 4122 -
+A Universally Unique IDentifier (UUID) URN Namespace
+----------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+Copyright (c) 1998 Microsoft.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, Microsoft, or Digital Equipment Corporation be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+Equipment Corporation makes any representations about the
+suitability of this software for any purpose."
+
+License notice for The LLVM Compiler Infrastructure
+---------------------------------------------------
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+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:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+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
+CONTRIBUTORS 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 WITH THE
+SOFTWARE.
+
+License notice for Bob Jenkins
+------------------------------
+
+By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+code any way you wish, private, educational, or commercial. It's free.
+
+License notice for Greg Parker
+------------------------------
+
+Greg Parker gparker@cs.stanford.edu December 2000
+This code is in the public domain and may be copied or modified without
+permission.
+
+License notice for libunwind based code
+----------------------------------------
+
+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 Printing Floating-Point Numbers (Dragon4)
+------------------------------------------------------------
+
+/******************************************************************************
+ Copyright (c) 2014 Ryan Juckett
+ http://www.ryanjuckett.com/
+
+ 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.
+******************************************************************************/
+
+License notice for Printing Floating-point Numbers (Grisu3)
+-----------------------------------------------------------
+
+Copyright 2012 the V8 project 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.
+
+License notice for xxHash
+-------------------------
+
+xxHash Library
+Copyright (c) 2012-2014, Yann Collet
+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.
+
+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 Berkeley SoftFloat Release 3e
+------------------------------------------------
+
+https://github.com/ucb-bar/berkeley-softfloat-3
+https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt
+
+License for Berkeley SoftFloat Release 3e
+
+John R. Hauser
+2018 January 20
+
+The following applies to the whole of SoftFloat Release 3e as well as to
+each source file individually.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California. 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.
+
+ 3. Neither the name of the University 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 REGENTS 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 REGENTS 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 xoshiro RNGs
+--------------------------------
+
+Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org)
+
+To the extent possible under law, the author has dedicated all copyright
+and related and neighboring rights to this software to the public domain
+worldwide. This software is distributed without any warranty.
+
+See .
+
+License for fastmod (https://github.com/lemire/fastmod) and ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data)
+--------------------------------------
+
+ Copyright 2018 Daniel Lemire
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+License notice for The C++ REST SDK
+-----------------------------------
+
+C++ REST SDK
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+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.
+
+License notice for MessagePack-CSharp
+-------------------------------------
+
+MessagePack for C#
+
+MIT License
+
+Copyright (c) 2017 Yoshifumi Kawai
+
+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 lz4net
+-------------------------------------
+
+lz4net
+
+Copyright (c) 2013-2017, Milosz Krajewski
+
+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.
+
+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 Nerdbank.Streams
+-----------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) Andrew Arnott
+
+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 RapidJSON
+----------------------------
+
+Tencent is pleased to support the open source community by making RapidJSON available.
+
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
+
+Licensed under the MIT License (the "License"); you may not use this file except
+in compliance with the License. You may obtain a copy of the License at
+
+http://opensource.org/licenses/MIT
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+License notice for DirectX Math Library
+---------------------------------------
+
+https://github.com/microsoft/DirectXMath/blob/master/LICENSE
+
+ The MIT License (MIT)
+
+Copyright (c) 2011-2020 Microsoft Corp
+
+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 ldap4net
+---------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2018 Alexander Chermyanin
+
+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 vectorized sorting code
+------------------------------------------
+
+MIT License
+
+Copyright (c) 2020 Dan Shechter
+
+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 musl
+-----------------------
+
+musl as a whole is licensed under the following standard MIT license:
+
+Copyright © 2005-2020 Rich Felker, et al.
+
+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 "Faster Unsigned Division by Constants"
+------------------------------
+
+Reference implementations of computing and using the "magic number" approach to dividing
+by constants, including codegen instructions. The unsigned division incorporates the
+"round down" optimization per ridiculous_fish.
+
+This is free and unencumbered software. Any copyright is dedicated to the Public Domain.
+
+
+License notice for mimalloc
+-----------------------------------
+
+MIT License
+
+Copyright (c) 2019 Microsoft Corporation, Daan Leijen
+
+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.
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets
new file mode 100644
index 0000000..98eb1d3
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._ b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net461/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net461/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..c5ba4e4
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net461/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net461/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net461/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..9d79492
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net461/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,291 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given void pointer.
+ The void pointer to add the offset to.
+ The offset to add.
+ The type of void pointer.
+ A new void pointer that reflects the addition of offset to the specified pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Determines whether the specified references point to the same location.
+ The first reference to compare.
+ The second reference to compare.
+ The type of reference.
+
+ if and point to the same location; otherwise, .
+
+
+ Casts the given object to the specified type.
+ The object to cast.
+ The type which the object will be cast to.
+ The original object, casted to the given type.
+
+
+ Reinterprets the given reference as a reference to a value of type .
+ The reference to reinterpret.
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ A reference to a value of type .
+
+
+ Returns a pointer to the given by-ref parameter.
+ The object whose pointer is obtained.
+ The type of object.
+ A pointer to the given value.
+
+
+ Reinterprets the given read-only reference as a reference.
+ The read-only reference to reinterpret.
+ The type of reference.
+ A reference to a value of type .
+
+
+ Reinterprets the given location as a reference to a value of type .
+ The location of the value to reference.
+ The type of the interpreted location.
+ A reference to a value of type .
+
+
+ Determines the byte offset from origin to target from the given references.
+ The reference to origin.
+ The reference to target.
+ The type of reference.
+ Byte offset from origin to target i.e. - .
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A pointer to the value to copy.
+ The type of value to copy.
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A reference to the value to copy.
+ The type of value to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Returns a value that indicates whether a specified reference is greater than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is greater than ; otherwise, .
+
+
+ Returns a value that indicates whether a specified reference is less than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is less than ; otherwise, .
+
+
+ Determines if a given reference to a value of type is a null reference.
+ The reference to check.
+ The type of the reference.
+
+ if is a null reference; otherwise, .
+
+
+ Returns a reference to a value of type that is a null reference.
+ The type of the reference.
+ A reference to a value of type that is a null reference.
+
+
+ Reads a value of type from the given location.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Returns the size of an object of the given type parameter.
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+ Bypasses definite assignment rules for a given value.
+ The uninitialized object.
+ The type of the uninitialized object.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+ Subtracts an element offset from the given void pointer.
+ The void pointer to subtract the offset from.
+ The offset to subtract.
+ The type of the void pointer.
+ A new void pointer that reflects the subtraction of offset from the specified pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of byte offset from pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+ Returns a to a boxed value.
+ The value to unbox.
+ The type to be unboxed.
+
+ is , and is a non-nullable value type.
+
+ is not a boxed value type.
+
+-or-
+
+ is not a boxed .
+
+ cannot be found.
+ A to the boxed value .
+
+
+ Writes a value of type to the given location.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..999abc7
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..9d79492
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,291 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given void pointer.
+ The void pointer to add the offset to.
+ The offset to add.
+ The type of void pointer.
+ A new void pointer that reflects the addition of offset to the specified pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Determines whether the specified references point to the same location.
+ The first reference to compare.
+ The second reference to compare.
+ The type of reference.
+
+ if and point to the same location; otherwise, .
+
+
+ Casts the given object to the specified type.
+ The object to cast.
+ The type which the object will be cast to.
+ The original object, casted to the given type.
+
+
+ Reinterprets the given reference as a reference to a value of type .
+ The reference to reinterpret.
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ A reference to a value of type .
+
+
+ Returns a pointer to the given by-ref parameter.
+ The object whose pointer is obtained.
+ The type of object.
+ A pointer to the given value.
+
+
+ Reinterprets the given read-only reference as a reference.
+ The read-only reference to reinterpret.
+ The type of reference.
+ A reference to a value of type .
+
+
+ Reinterprets the given location as a reference to a value of type .
+ The location of the value to reference.
+ The type of the interpreted location.
+ A reference to a value of type .
+
+
+ Determines the byte offset from origin to target from the given references.
+ The reference to origin.
+ The reference to target.
+ The type of reference.
+ Byte offset from origin to target i.e. - .
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A pointer to the value to copy.
+ The type of value to copy.
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A reference to the value to copy.
+ The type of value to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Returns a value that indicates whether a specified reference is greater than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is greater than ; otherwise, .
+
+
+ Returns a value that indicates whether a specified reference is less than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is less than ; otherwise, .
+
+
+ Determines if a given reference to a value of type is a null reference.
+ The reference to check.
+ The type of the reference.
+
+ if is a null reference; otherwise, .
+
+
+ Returns a reference to a value of type that is a null reference.
+ The type of the reference.
+ A reference to a value of type that is a null reference.
+
+
+ Reads a value of type from the given location.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Returns the size of an object of the given type parameter.
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+ Bypasses definite assignment rules for a given value.
+ The uninitialized object.
+ The type of the uninitialized object.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+ Subtracts an element offset from the given void pointer.
+ The void pointer to subtract the offset from.
+ The offset to subtract.
+ The type of the void pointer.
+ A new void pointer that reflects the subtraction of offset from the specified pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of byte offset from pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+ Returns a to a boxed value.
+ The value to unbox.
+ The type to be unboxed.
+
+ is , and is a non-nullable value type.
+
+ is not a boxed value type.
+
+-or-
+
+ is not a boxed .
+
+ cannot be found.
+ A to the boxed value .
+
+
+ Writes a value of type to the given location.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..103462b
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..9d79492
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,291 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given void pointer.
+ The void pointer to add the offset to.
+ The offset to add.
+ The type of void pointer.
+ A new void pointer that reflects the addition of offset to the specified pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Determines whether the specified references point to the same location.
+ The first reference to compare.
+ The second reference to compare.
+ The type of reference.
+
+ if and point to the same location; otherwise, .
+
+
+ Casts the given object to the specified type.
+ The object to cast.
+ The type which the object will be cast to.
+ The original object, casted to the given type.
+
+
+ Reinterprets the given reference as a reference to a value of type .
+ The reference to reinterpret.
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ A reference to a value of type .
+
+
+ Returns a pointer to the given by-ref parameter.
+ The object whose pointer is obtained.
+ The type of object.
+ A pointer to the given value.
+
+
+ Reinterprets the given read-only reference as a reference.
+ The read-only reference to reinterpret.
+ The type of reference.
+ A reference to a value of type .
+
+
+ Reinterprets the given location as a reference to a value of type .
+ The location of the value to reference.
+ The type of the interpreted location.
+ A reference to a value of type .
+
+
+ Determines the byte offset from origin to target from the given references.
+ The reference to origin.
+ The reference to target.
+ The type of reference.
+ Byte offset from origin to target i.e. - .
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A pointer to the value to copy.
+ The type of value to copy.
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A reference to the value to copy.
+ The type of value to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Returns a value that indicates whether a specified reference is greater than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is greater than ; otherwise, .
+
+
+ Returns a value that indicates whether a specified reference is less than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is less than ; otherwise, .
+
+
+ Determines if a given reference to a value of type is a null reference.
+ The reference to check.
+ The type of the reference.
+
+ if is a null reference; otherwise, .
+
+
+ Returns a reference to a value of type that is a null reference.
+ The type of the reference.
+ A reference to a value of type that is a null reference.
+
+
+ Reads a value of type from the given location.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Returns the size of an object of the given type parameter.
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+ Bypasses definite assignment rules for a given value.
+ The uninitialized object.
+ The type of the uninitialized object.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+ Subtracts an element offset from the given void pointer.
+ The void pointer to subtract the offset from.
+ The offset to subtract.
+ The type of the void pointer.
+ A new void pointer that reflects the subtraction of offset from the specified pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of byte offset from pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+ Returns a to a boxed value.
+ The value to unbox.
+ The type to be unboxed.
+
+ is , and is a non-nullable value type.
+
+ is not a boxed value type.
+
+-or-
+
+ is not a boxed .
+
+ cannot be found.
+ A to the boxed value .
+
+
+ Writes a value of type to the given location.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..491a80a
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..9d79492
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,291 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given void pointer.
+ The void pointer to add the offset to.
+ The offset to add.
+ The type of void pointer.
+ A new void pointer that reflects the addition of offset to the specified pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Determines whether the specified references point to the same location.
+ The first reference to compare.
+ The second reference to compare.
+ The type of reference.
+
+ if and point to the same location; otherwise, .
+
+
+ Casts the given object to the specified type.
+ The object to cast.
+ The type which the object will be cast to.
+ The original object, casted to the given type.
+
+
+ Reinterprets the given reference as a reference to a value of type .
+ The reference to reinterpret.
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ A reference to a value of type .
+
+
+ Returns a pointer to the given by-ref parameter.
+ The object whose pointer is obtained.
+ The type of object.
+ A pointer to the given value.
+
+
+ Reinterprets the given read-only reference as a reference.
+ The read-only reference to reinterpret.
+ The type of reference.
+ A reference to a value of type .
+
+
+ Reinterprets the given location as a reference to a value of type .
+ The location of the value to reference.
+ The type of the interpreted location.
+ A reference to a value of type .
+
+
+ Determines the byte offset from origin to target from the given references.
+ The reference to origin.
+ The reference to target.
+ The type of reference.
+ Byte offset from origin to target i.e. - .
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A pointer to the value to copy.
+ The type of value to copy.
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A reference to the value to copy.
+ The type of value to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Returns a value that indicates whether a specified reference is greater than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is greater than ; otherwise, .
+
+
+ Returns a value that indicates whether a specified reference is less than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is less than ; otherwise, .
+
+
+ Determines if a given reference to a value of type is a null reference.
+ The reference to check.
+ The type of the reference.
+
+ if is a null reference; otherwise, .
+
+
+ Returns a reference to a value of type that is a null reference.
+ The type of the reference.
+ A reference to a value of type that is a null reference.
+
+
+ Reads a value of type from the given location.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Returns the size of an object of the given type parameter.
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+ Bypasses definite assignment rules for a given value.
+ The uninitialized object.
+ The type of the uninitialized object.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+ Subtracts an element offset from the given void pointer.
+ The void pointer to subtract the offset from.
+ The offset to subtract.
+ The type of the void pointer.
+ A new void pointer that reflects the subtraction of offset from the specified pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of byte offset from pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+ Returns a to a boxed value.
+ The value to unbox.
+ The type to be unboxed.
+
+ is , and is a non-nullable value type.
+
+ is not a boxed value type.
+
+-or-
+
+ is not a boxed .
+
+ cannot be found.
+ A to the boxed value .
+
+
+ Writes a value of type to the given location.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt b/packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/.signature.p7s b/packages/System.Threading.Tasks.Extensions.4.5.4/.signature.p7s
new file mode 100644
index 0000000..e0ee9f4
Binary files /dev/null and b/packages/System.Threading.Tasks.Extensions.4.5.4/.signature.p7s differ
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT b/packages/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT
new file mode 100644
index 0000000..984713a
--- /dev/null
+++ b/packages/System.Threading.Tasks.Extensions.4.5.4/LICENSE.TXT
@@ -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.
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg b/packages/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg
new file mode 100644
index 0000000..a608bc5
Binary files /dev/null and b/packages/System.Threading.Tasks.Extensions.4.5.4/System.Threading.Tasks.Extensions.4.5.4.nupkg differ
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT b/packages/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..db542ca
--- /dev/null
+++ b/packages/System.Threading.Tasks.Extensions.4.5.4/THIRD-PARTY-NOTICES.TXT
@@ -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."
+
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000..eeec928
Binary files /dev/null and b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.dll differ
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml
new file mode 100644
index 0000000..5e02a99
--- /dev/null
+++ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/net461/System.Threading.Tasks.Extensions.xml
@@ -0,0 +1,166 @@
+
+
+ System.Threading.Tasks.Extensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a value type that wraps a and a TResult, only one of which is used.
+ The result.
+
+
+ Initializes a new instance of the class using the supplied task that represents the operation.
+ The task.
+ The task argument is null.
+
+
+ Initializes a new instance of the class using the supplied result of a successful operation.
+ The result.
+
+
+ Retrieves a object that represents this .
+ The object that is wrapped in this if one exists, or a new object that represents the result.
+
+
+ Configures an awaiter for this value.
+ true to attempt to marshal the continuation back to the captured context; otherwise, false.
+ The configured awaiter.
+
+
+ Creates a method builder for use with an async method.
+ The created builder.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Creates an awaiter for this value.
+ The awaiter.
+
+
+ Returns the hash code for this instance.
+ The hash code for the current object.
+
+
+ Gets a value that indicates whether this object represents a canceled operation.
+ true if this object represents a canceled operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a completed operation.
+ true if this object represents a completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a successfully completed operation.
+ true if this object represents a successfully completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a failed operation.
+ true if this object represents a failed operation; otherwise, false.
+
+
+ Compares two values for equality.
+ The first value to compare.
+ The second value to compare.
+ true if the two values are equal; otherwise, false.
+
+
+ Determines whether two values are unequal.
+ The first value to compare.
+ The seconed value to compare.
+ true if the two values are not equal; otherwise, false.
+
+
+ Gets the result.
+ The result.
+
+
+ Returns a string that represents the current object.
+ A string that represents the current object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netcoreapp2.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000..dfc4cdf
Binary files /dev/null and b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll differ
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml
new file mode 100644
index 0000000..5e02a99
--- /dev/null
+++ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard1.0/System.Threading.Tasks.Extensions.xml
@@ -0,0 +1,166 @@
+
+
+ System.Threading.Tasks.Extensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a value type that wraps a and a TResult, only one of which is used.
+ The result.
+
+
+ Initializes a new instance of the class using the supplied task that represents the operation.
+ The task.
+ The task argument is null.
+
+
+ Initializes a new instance of the class using the supplied result of a successful operation.
+ The result.
+
+
+ Retrieves a object that represents this .
+ The object that is wrapped in this if one exists, or a new object that represents the result.
+
+
+ Configures an awaiter for this value.
+ true to attempt to marshal the continuation back to the captured context; otherwise, false.
+ The configured awaiter.
+
+
+ Creates a method builder for use with an async method.
+ The created builder.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Creates an awaiter for this value.
+ The awaiter.
+
+
+ Returns the hash code for this instance.
+ The hash code for the current object.
+
+
+ Gets a value that indicates whether this object represents a canceled operation.
+ true if this object represents a canceled operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a completed operation.
+ true if this object represents a completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a successfully completed operation.
+ true if this object represents a successfully completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a failed operation.
+ true if this object represents a failed operation; otherwise, false.
+
+
+ Compares two values for equality.
+ The first value to compare.
+ The second value to compare.
+ true if the two values are equal; otherwise, false.
+
+
+ Determines whether two values are unequal.
+ The first value to compare.
+ The seconed value to compare.
+ true if the two values are not equal; otherwise, false.
+
+
+ Gets the result.
+ The result.
+
+
+ Returns a string that represents the current object.
+ A string that represents the current object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000..dfab234
Binary files /dev/null and b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll differ
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml
new file mode 100644
index 0000000..5e02a99
--- /dev/null
+++ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/netstandard2.0/System.Threading.Tasks.Extensions.xml
@@ -0,0 +1,166 @@
+
+
+ System.Threading.Tasks.Extensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a value type that wraps a and a TResult, only one of which is used.
+ The result.
+
+
+ Initializes a new instance of the class using the supplied task that represents the operation.
+ The task.
+ The task argument is null.
+
+
+ Initializes a new instance of the class using the supplied result of a successful operation.
+ The result.
+
+
+ Retrieves a object that represents this .
+ The object that is wrapped in this if one exists, or a new object that represents the result.
+
+
+ Configures an awaiter for this value.
+ true to attempt to marshal the continuation back to the captured context; otherwise, false.
+ The configured awaiter.
+
+
+ Creates a method builder for use with an async method.
+ The created builder.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Creates an awaiter for this value.
+ The awaiter.
+
+
+ Returns the hash code for this instance.
+ The hash code for the current object.
+
+
+ Gets a value that indicates whether this object represents a canceled operation.
+ true if this object represents a canceled operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a completed operation.
+ true if this object represents a completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a successfully completed operation.
+ true if this object represents a successfully completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a failed operation.
+ true if this object represents a failed operation; otherwise, false.
+
+
+ Compares two values for equality.
+ The first value to compare.
+ The second value to compare.
+ true if the two values are equal; otherwise, false.
+
+
+ Determines whether two values are unequal.
+ The first value to compare.
+ The seconed value to compare.
+ true if the two values are not equal; otherwise, false.
+
+
+ Gets the result.
+ The result.
+
+
+ Returns a string that represents the current object.
+ A string that represents the current object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000..dfc4cdf
Binary files /dev/null and b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll differ
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml
new file mode 100644
index 0000000..5e02a99
--- /dev/null
+++ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml
@@ -0,0 +1,166 @@
+
+
+ System.Threading.Tasks.Extensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a value type that wraps a and a TResult, only one of which is used.
+ The result.
+
+
+ Initializes a new instance of the class using the supplied task that represents the operation.
+ The task.
+ The task argument is null.
+
+
+ Initializes a new instance of the class using the supplied result of a successful operation.
+ The result.
+
+
+ Retrieves a object that represents this .
+ The object that is wrapped in this if one exists, or a new object that represents the result.
+
+
+ Configures an awaiter for this value.
+ true to attempt to marshal the continuation back to the captured context; otherwise, false.
+ The configured awaiter.
+
+
+ Creates a method builder for use with an async method.
+ The created builder.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Creates an awaiter for this value.
+ The awaiter.
+
+
+ Returns the hash code for this instance.
+ The hash code for the current object.
+
+
+ Gets a value that indicates whether this object represents a canceled operation.
+ true if this object represents a canceled operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a completed operation.
+ true if this object represents a completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a successfully completed operation.
+ true if this object represents a successfully completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a failed operation.
+ true if this object represents a failed operation; otherwise, false.
+
+
+ Compares two values for equality.
+ The first value to compare.
+ The second value to compare.
+ true if the two values are equal; otherwise, false.
+
+
+ Determines whether two values are unequal.
+ The first value to compare.
+ The seconed value to compare.
+ true if the two values are not equal; otherwise, false.
+
+
+ Gets the result.
+ The result.
+
+
+ Returns a string that represents the current object.
+ A string that represents the current object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/lib/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/ref/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/ref/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/ref/netcoreapp2.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._ b/packages/System.Threading.Tasks.Extensions.4.5.4/ref/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt b/packages/System.Threading.Tasks.Extensions.4.5.4/useSharedDesignerContext.txt
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Threading.Tasks.Extensions.4.5.4/version.txt b/packages/System.Threading.Tasks.Extensions.4.5.4/version.txt
new file mode 100644
index 0000000..8d6cdd6
--- /dev/null
+++ b/packages/System.Threading.Tasks.Extensions.4.5.4/version.txt
@@ -0,0 +1 @@
+7601f4f6225089ffb291dc7d58293c7bbf5c5d4f
diff --git a/packages/ZstdSharp.Port.0.7.1/.signature.p7s b/packages/ZstdSharp.Port.0.7.1/.signature.p7s
new file mode 100644
index 0000000..67e9e86
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/.signature.p7s differ
diff --git a/packages/ZstdSharp.Port.0.7.1/ZstdSharp.Port.0.7.1.nupkg b/packages/ZstdSharp.Port.0.7.1/ZstdSharp.Port.0.7.1.nupkg
new file mode 100644
index 0000000..c36f14b
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/ZstdSharp.Port.0.7.1.nupkg differ
diff --git a/packages/ZstdSharp.Port.0.7.1/lib/net461/ZstdSharp.dll b/packages/ZstdSharp.Port.0.7.1/lib/net461/ZstdSharp.dll
new file mode 100644
index 0000000..931b84a
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/lib/net461/ZstdSharp.dll differ
diff --git a/packages/ZstdSharp.Port.0.7.1/lib/net5.0/ZstdSharp.dll b/packages/ZstdSharp.Port.0.7.1/lib/net5.0/ZstdSharp.dll
new file mode 100644
index 0000000..3f38d00
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/lib/net5.0/ZstdSharp.dll differ
diff --git a/packages/ZstdSharp.Port.0.7.1/lib/net6.0/ZstdSharp.dll b/packages/ZstdSharp.Port.0.7.1/lib/net6.0/ZstdSharp.dll
new file mode 100644
index 0000000..b7f4f16
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/lib/net6.0/ZstdSharp.dll differ
diff --git a/packages/ZstdSharp.Port.0.7.1/lib/net7.0/ZstdSharp.dll b/packages/ZstdSharp.Port.0.7.1/lib/net7.0/ZstdSharp.dll
new file mode 100644
index 0000000..c49f93e
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/lib/net7.0/ZstdSharp.dll differ
diff --git a/packages/ZstdSharp.Port.0.7.1/lib/netcoreapp3.1/ZstdSharp.dll b/packages/ZstdSharp.Port.0.7.1/lib/netcoreapp3.1/ZstdSharp.dll
new file mode 100644
index 0000000..0ce87fb
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/lib/netcoreapp3.1/ZstdSharp.dll differ
diff --git a/packages/ZstdSharp.Port.0.7.1/lib/netstandard2.0/ZstdSharp.dll b/packages/ZstdSharp.Port.0.7.1/lib/netstandard2.0/ZstdSharp.dll
new file mode 100644
index 0000000..3a06e3c
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/lib/netstandard2.0/ZstdSharp.dll differ
diff --git a/packages/ZstdSharp.Port.0.7.1/lib/netstandard2.1/ZstdSharp.dll b/packages/ZstdSharp.Port.0.7.1/lib/netstandard2.1/ZstdSharp.dll
new file mode 100644
index 0000000..cd7ba12
Binary files /dev/null and b/packages/ZstdSharp.Port.0.7.1/lib/netstandard2.1/ZstdSharp.dll differ